Linux学习-63-源码包服务管理方法
创始人
2024-03-05 00:38:17
0

14.5 源码包服务管理(启动与自启动)

14.5.1 源码包服务的启动管理
  • 源码包服务中所有的文件都会安装到指定目录当中,并且没有任何垃圾文件产生(Linux 的特性),所以服务的管理脚本程序也会安装到指定目录中。源码包服务的启动管理方式就是在服务的安装目录中找到管理脚本,然后执行这个脚本。每个服务的启动脚本都是不一样的,我们怎么确定每个服务的启动脚本呢?还记得在安装源码包服务时,我们强调需要査看每个服务的说明文档吗(一般是 INSTALL 或 READEM)?在这个说明文档中会明确地告诉大家服务的启动脚本是哪个文件。
  • 用 apache 服务来举例。一般 apache 服务的安装位置是 /usr/local/apache2/ 目录,那么 apache 服务的启动脚本就是 /usr/local/apache2/bin/apachectl 文件(查询 apache 说明文档得知)。启动命令如下:
#源码包服务的启动管理
[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stop|restart|...
#会启动源码包安装的apache服务
  • 注意,不管是源码包安装的 apache,还是 RPM 包默认安装的 apache,虽然在一台服务器中都可以安装,但是只能启动一因为它们都会占用 80 端口。源码包服务的启动方法就这一种,比 RPM 包默认安装的服务要简单一些。
14.5.2 源码包服务的自启动管理
  • 源码包服务的自启动管理也不能依靠系统的服务管理命令,而只能把标准启动命令写入 /etc/rc.d/rc.local 文件中。系统在启动过程中读取 /etc/rc.d/rc.local 文件时,就会调用源码包服务的启动脚本,从而让该服务开机自启动。命令如下:
[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服务就被设为自启动了
14.5.3 源码包服务被服务管理命令识别
  • 默认情况下,源码包服务是不能被系统的服务管理命令所识别和管理的,但是如果我们做一些设定,则也是可以让源码包服务被系统的服务管理命令所识别和管理的。但并不推荐。这会让本来区别很明确的源码包服务和 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服务,并启动
#安装源码包的apache服务
[root@CncLucZK ~]# /usr/local/apache2/bin/apachectl start
[root@CncLucZK ~]# netstat -tlun | grep 80
tcp 0 0 :::80 :::* LISTEN
#启动源码包安装的apache服务,查看端口确定已经启动
  • 让源码包安装的apache服务能被service命令管理启动
[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命令也能够生效
  • 让源码包安装的apache服务能被chkconfig命令管理自启动
[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服务
  • 让ntsysv命令可以管理源码包安装的apache服务:ntsysv 命令其实和 chkconfig 命令使用同样的管理机制,也就是说,ntsysv 已经可以进行源码包安装 apache 服务的自启动管理了
    在这里插入图片描述
  • 总结,如果想让源码包服务被service命令所识别和管理,则只需做一个软链接把启动脚本链接到 /etc/init.d/ 目录中即可。要想让源码包服务被 chkconfig 命令所是被,除了需要把服务的启动脚本链接到 /etc/init.d/ 目录中,还要修改这个启动脚本,在启动脚本的开头加入如下内容:
#chkconfig:运行级别 启动顺序 关闭
#description:说明
  • 然后需要使用"chkconfig–add 服务名"的方式把服务加入 chkconfig 命令的管理中。命令格式如下:
[root@localhost ~]# chkconfig [选项][服务名]
  • 选项:
    • -add:把服务加入 chkconfig 命令的管理中;
    • -del:把服务从 chkconfig 命令的管理中删除;
[root@CncLucZK ~]# chkconfig -del httpd
#把apache服务从chkconfig命令的管理中删除

下一篇:Linux学习-64-常见服务类别及功能

相关内容

热门资讯

三部门:不断完善学前教育成本分... 人民财讯12月23日电,国家发展改革委、教育部、财政部发布关于完善幼儿园收费政策的通知,其中提出,各...
李强签署国务院令 公布《行政执... 新华社北京12月23日电 国务院总理李强日前签署国务院令,公布《行政执法监督条例》(以下简称《条例》...
“免申即享” 央行发布一次性信... 经济参考报记者 张莫 12月22日,中国人民银行发布一次性信用修复政策有关安排,支持信用受损但积极还...
从民进80年足迹中读懂中国新型... 参会人员翻阅民进会史工作成果书籍。(《中国新闻》报 尹李梅 摄) “民进历史犹如奔流不息的长河,过...
多所高校改革学业评价制度,弱化... 近日,河南大学正式出台2025级本科生成绩与学分管理新规,其改革目标在于鼓励学术探索,缓解过度竞争。...
东华科技:公司财务总监、总法律... 每经AI快讯,东华科技(SZ 002140,收盘价:11.47元)12月23日晚间发布公告称,202...
融资租赁合同纠纷调解结案 宁新... 12月23日,宁新新材(920719)发布公告,因与远东国际融资租赁有限公司的融资租赁合同纠纷,公司...
湖南白银:金融借款纠纷案终审胜... 12月23日,湖南白银(002716)发布公告,近日公司银行账户部分资金解除冻结。此前,因与曹永德、...
三部门:完善幼儿园收费政策 国家发展改革委 教育部 财政部关于 完善幼儿园收费政策的通知 发改价格〔2025〕1644号 各省、...
多政策护航 交通领域消费场景不... 今天(12月23日),国务院新闻办公室举行新闻发布会,交通运输部副部长李扬表示,正在推进新的交通运输...