#源码包服务的启动管理
[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stop|restart|...
#会启动源码包安装的apache服务
[root@CncLucZK xinetd.d]# vi /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.touch /var/lock/subsys/local
/usr/local/apache2/bin/apachectl start
#加入源码包服务的标准启动命令,保存退出,源码包安装的apache服务就被设为自启动了
默认情况下,源码包服务是不能被系统的服务管理命令所识别和管理的,但是如果我们做一些设定,则也是可以让源码包服务被系统的服务管理命令所识别和管理的。但并不推荐。这会让本来区别很明确的源码包服务和 RPM 包服务变得容易混淆,不利于系统维护和管理。如何把源码包安装的 apache 服务变为和 RPM 包默认安装的 apache 服务一样,可以被 service、chkconfig、ntsysv 命令所识别。测试如下:
卸载RPM包默认安装的apache服务:
[root@CncLucZK ~]# yum -y remove httpd
#卸载RPM包默认安装的apache服务,避免对实验产生影响(在生产服务器上慎用yum卸载,因为这有可能造成服务器崩溃)
[root@CncLucZK ~]# service httpd start httpd:未被识别的服务
#因为服务被卸载,所以service命令不能识别httpd服务
#安装源码包的apache服务
[root@CncLucZK ~]# /usr/local/apache2/bin/apachectl start
[root@CncLucZK ~]# netstat -tlun | grep 80
tcp 0 0 :::80 :::* LISTEN
#启动源码包安装的apache服务,查看端口确定已经启动
[root@CncLucZK ~]# ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
#service命令其实只是在/etc/init.d/目录中查找是否有服务的启动脚本,所以我们只需要做一个软链接,把源码包的启动脚本链接到/etc/init.d/目录中,就能被service命令所管理了。把软链接文件命名为apache,注意这不是RPM包默认安装的apache服务
[root@CncLucZK ~]# service apache restart
#虽然RPM包默认安装的apache服务被卸载了,但是service命令也能够生效
[root@CncLucZK ~]# vi /etc/init.d/apache
#修改源码包安装的apache服务的启动脚本(注意此文件是软链接,所以修改的还是源码包启动脚本)
#!/bin/sh
#
chkconfig: 35 86 76
#指定httpd脚本可以被chkconfig命令所管理
#格式是:chkconfig:运行级别 启动顺序 关闭顺序
#这里我们让apache服务在3和5级别中能被chkconfig命令所管理,启动顺序是S86,关闭顺序是K76
#(自定顺序,不要和系统中已有的启动顺序冲突)
description: source package apache
#说明,内容随意
#以上两元素必须加入,才能被chkconfig命令所识别 ...省略部分输出...
[root@CncLucZK ~]# chkconfig --add apache
#让chkconfig命令能够管理源码包安装的apache服务
[root@CncLucZK ~]# chkconfig --list | grep apache
apache 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
#RPM包默认安装的apache服务被删除了,但是chkconfig命令可以管理源码包安装的tapache服务

#chkconfig:运行级别 启动顺序 关闭
#description:说明
[root@localhost ~]# chkconfig [选项][服务名]
[root@CncLucZK ~]# chkconfig -del httpd
#把apache服务从chkconfig命令的管理中删除