linux系统用service httpd restart重启apache2 提示httpd:unrecognized service 该怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统用service httpd restart重启apache2 提示httpd:unrecognized service 该怎么解决相关的知识,希望对你有一定的参考价值。

service httpd restart 出现 httpd:unrecognized service 错误
vi /etc/rc.local #在/etc/rc.d/rc.local中增加启动apache的命令
添加:
/usr/local/apache2/bin/apachectl start
或者
#将apache注册为系统服务
# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
#chmod 700 /etc/rc.d/init.d/httpd
#vi /etc/rc.d/init.d/httpd
在第三行后增加
#Comments to support chkconfig on RedHat Linux
#chkconfig: 2345 90 90
#description:http server
注意:没有这几行,在使用chkconfig时会提示: service httpd does not support chkconfig。
chkconfig --add httpd
chkconfig --level 2345 httpd on
参考技术A 你是用rpm安装的还是编译安装的?
如果是rpm装的可以用这个命令
如果是编译安装必须找到apachetl文件 来启动追问

我是用的ubuntu 系统,他软件库里应该有,我就直接用apt-get -y install apache2 就安装了

追答

cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
试试

参考技术B 。。。。你装的apache2 当然是要service apache2 restart 参考技术C chkconfig --list | grep httpd
看下有没有注册这个服务追问

没有,这是怎么回事呢?应该怎样解决。重新装还是有什么地方没有设置

追答

找到你装httpd的目录find下看有没有以".init"结尾的文件

追问

我默认安装的,是/etc/apache2文件吗?发现*.init文件。整个系统就只发现/etc/security/namespace.init 1个.init的文件

追答

那你就直接到目录下去重启httpd吧

追问

谢谢你的回答,但是我发现还是不行,我先下个其它包试试吧,谢谢你。
重新安装完成上一行“ldconfig deferred processing now taking place”是什么意思,是不是提示了什么,刚卸载的时候也有这一行

最新cenos执行service httpd restart 报错Failed to restart httpd.service: Unit not found.

原来是需要将Apache注册到Linux服务里面啊!
注册Apache到Linux服务
在Linux下用源代码方式编译安装完Apache后,启动关闭Apache可以通过如下命令实现: 

/usr/local/apache/bin/apachectl  start | stop | restart

如果想将httpd列入系统自动启动的服务,可以直接将上述的apachectl文件拷贝到 /etc/rc.d/init.d 中,然后在相应的启动级别如3,5中加入链接即可。命令如下:

cp /usr/local/apache2/bin/apachectl  /etc/rc.d/init.d/httpd     # 复制到init.d 并重命名为httpd

ln -s /etc/rc.d/init.d/httpd  /etc/rc.d/rc3.d/S61httpd

链接文件的S61是启动时的序号。当init.d目录下有httpd脚本后,我们就可以通过service命令来启动关闭apache了。在任意路径下执行:

service httpd start | stop | restart

这时有个问题就是:虽然apache已经可以自动启动,但在linux的服务列表中却看不到它,要添加服务,一般通过chkconfig --add xxx来实现,但需要脚本中有相应的信息才行,否则chkconfig就会提示:xxx 服务不支持 chkconfig。所以我们首先编辑httpd脚本,在第2行(#!/bin/sh下面)添加如下注释信息(包括#):

# chkconfig: 35 61 61
# description: Apache

第一行的3个参数意义分别为:在哪些运行级别启动httpd(3,5);启动序号(S61);关闭序号(K61)。注意:第二行的描述必须要写!
保存后执行:

chkconfig --add httpd                    #所有开机模式下自启动,另外chkconfig httpd on 表示345模式下自启动

就将httpd添加入服务了。在rc3.d、rc5.d路径中将来就会出现S61httpd的链接,其他运行级别路径中会出现K61httpd的链接。

运行下面的命令查看服务,就可以看到httpd的服务了。
chkconfig --list

以上是关于linux系统用service httpd restart重启apache2 提示httpd:unrecognized service 该怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

linux命令之高级使用 service

怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用

把脚本添加到系统服务里,即用service来调用

linux nginx环境 重启http Failed to restart httpd.service: Unit not found.

linux学习:持续集成篇--svn版本管理系统的安装与使用-02

linux查找文件夹具体位置用啥命令