AI智能
改变未来

『学了就忘』Linux服务管理 — 79、源码包安装的服务管理

[toc]

1、源码包服务的启动管理

# 通过源码包的安装路径,找到该服务的启动脚本,# 也就是获得该服务的启动脚本的绝对路径,# 最后加上启动选项。[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stoplrestart|...

注意:

按用源码包安装服务的时候,每个服务的启动脚本是不同的。

我们如何知道一个服务的启动脚本叫什么名称呢?

在官方给你的安装文档中,会明确的告诉你该服务的启动脚本叫什么名称。

开启服务示例:

说明:

这个报错说的是

localhost.localdomain

这个主机名没有被识别,但是apache服务启动起来是没有问题的。

查看

apache

服务是否开启,执行命令

ps aux | grep httpd

如下图所示:

2、源码包服务的自启动管理

通过配置

/etc/rc.d/rc.local

配置文件,来实现通过源码包安装的服务的自启动管理。

这个方法和RPM包默认安装的独立服务管理方式二一样(请看文章中的方式二:点此查看)。

这个方法是通用的,不论是源码包还是RPM包安装的服务都可以,主要看的是你在

/etc/rc.d/rc.local

配置文件中写的是源码包安装的服务启动命令,还是通过RPM包安装的服务启动命令。

所以在上文中推荐使用配置文件的方式进行服务的管理,通用、统一管理Linux系统中的服务。

示例:

# 配置/etc/rc.d/rc.local配置文件[root@localhost ~]# vim /etc/rc.d/rc.local# 修改自启动文件内容#!/bin/sh## This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you don\'t# want to do the full Sys V style init stuff.touch /var/lock/subsys/local/usr/local/apache2/bin/apachectl start

3、让源码包服务被服务管理命令识别

我们接下来就做个试验,把通过源码包安装的

apche

服务,变为和RPM包安装的

apache

服务一样,可以被

service

chkconfig

ntsysv

命令识别。

我们所要解决的问题如下图:

(1)让通过源码包安装的服务能被

service

命令管理启动

service

命令其实只是在

/etc/rc.d/init.d/

目录中查找是否有服务的启动脚本,所以我们只需要做个软链接,把源码包的启动脚本链接到

/etc/rc.d/init.d/

目录中,就能被

service

命令管理了。

# 将通过源码包安装的服务的启动脚本,在/etc/rc.d/init.d/目录中做一个软链接[root@localhost ~]# ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/apachectl

查看

/etc/rc.d/init.d/

内容,如下图所示:

执行

service apachectl restart

命令,开启

apche

服务。

可以看到

apche

服务可以通过

service

命令进行启动了,没有报未被识别的服务错误。

(2)让通过源码包安装的服务能被

chkconfig

命令管理自启动

接上一步,然后需要对软链接到

/etc/rc.d/init.d/

目录,通过源码包安装的服务的启动脚本进行配置。

# 编辑/etc/rc.d/init.d/目录中的源码包启动脚本# (注意此文件是软链接,所以修改的还是源码包启动脚本)[root@localhost ~]# vim /etc/rc.d/init.d/apachectl# 在开头添加内容如下#!/bin/sh# 添加内容-1# 指定httpd脚本可以被chkconfig命令管理# 格式是:chkconfig:运行级别启动顺序关闭顺序# 这里我们设定apache在3和5级别能被chkconfig命令管理,启动顺序是S86,关闭顺序是K76# 注意:(自定顺序,不要和系统中已有的启动程序顺序冲突)# chkconfig:35 86 76## 添加内容-2# 说明,内容随意# description:aaabbbccc#以上两句话必须加入,才能被chkconfig命令识别。

然后让

chkconfig

命令能够管理源码包安装的服务。

[root@localhost ~]# chkconfig --add apachectl

没有报错说明成功。

通过

chkconfig

命令查看Linux中自启动服务。

如下图所示:

然后可以通过

chkconfig

命令开启该服务的自启动状态了。

(3)让

ntsysv

命令可以管理通过源码包安装的服务

ntsysv

命令其实是和

chkconfig

命令使用同样的管理机制,也就是说上面

chkconfig

命令能够管理源码包安装的服务,

ntsysv

命令也就可以管理通过源码包安装的服务了。

执行

[root@localhost ~]# ntsysv

命令,可以在图形界面中找到我们上边刚刚配置的

apache

服务。

(4)总结

  • 如果想让源码包服务被
    service

    命令识别并管理,只要做个软链接把启动脚本链接到

    /etc/rc.d/init.d/

    目录中即可。

  • 要想让源码包服务被
    chkconfig

    命令识别,除了需要把服务的启动脚本链接到

    /etc/rc.d/init.d/

    目录中,还要修改这个启动脚本,在启动脚本的开头加入:

    # chkconfig

    :运行级别、启动顺序、关闭顺序。

  • # description

    :说明信息。

  • 然后需要使用
    chkconfig --add 服务名

    的方式,把服务加入

    chkconfig

    命令管理中。命令格式如下:

    [root@localhost ~]# chkconfig [选项] [服务名]选项:--add:把服务加入chkconfig命令的管理。--del:把服务从chkconfig命令的管理中删除。# 示例:# 把apache服务从chkconfig命令的管理中删除[root@localhost ~]# chkconfig -del httpd
  • chkconfig

    命令配置完成,

    ntsysv

    命令也就可以管理该服务了。

  • 提示:

    知道源码包安装的服务可以这样处理就可以了,并不推荐这样做。通过源码包安装的服务就用源码包的方式启动服务,通过RPM包方式安装的服务,就用RPM包的方式启动服务,就很好。

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » 『学了就忘』Linux服务管理 — 79、源码包安装的服务管理