『学了就忘』Linux服务管理 — 76、RPM包安装的服务管理

1、独立服务的启动管理

(1)使用/etc/init.d/目录中的启动脚本启动服务(推荐)

[root@localhost ~]# /etc/init.d/httpd start

或者

[root@localhost ~]# /etc/cr.d/init.d/httpd start

两个是软连的关系,用哪个目录都行。

(2)使用service命令来启动独立的服务

[root@localhost ~]# service 独立服务名 start|stop|restart…

说明:

  • service命令启动服务,其实是/etc/init.d/目录中脚本启动服务的简化命令。

  • service命令最终所搜的还是/etc/init.d/目录中的服务启动脚本。

2、独立服务的自启动管理

提示:设置服务的自启动,是我下次开机时候,该服务的自启动配置,而不是设置此时该服务是否运行。

方式一:

使用chkconfig服务自启动管理命令。

[root@localhost ~]# chkconfig [--level 运行级别] [独立服务名] [on|off]

选项:
  --level:设定在哪个运行级别中开机自启动(on),或是关闭自启动(off)

# 示例:
[root@localhost ~]# chkconfig --level 2345 httpd on

练习:

# 1.先查看httpd服务的自启动状态
[root@localhost ~]# chkconfig --list | grep httpd
httpd   0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭

# 2.设置httpd服务的自启动
# httpd服务开启自启动默认的系统运行级别就是2345
# 所以可以简写:chkconfig httpd on 也是可以的
[root@localhost ~]# chkconfig --level 2345 httpd on

# 3.查看修改后的httpd服务自启动状态
[root@localhost ~]# chkconfig --list | grep httpd
httpd   0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

# 4.关闭httpd服务的自启动
[root@localhost ~]# chkconfig httpd off

# 5.再次查看httpd服务的自启动状态
[root@localhost ~]# chkconfig --list | grep httpd
httpd   0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭

方式二:(推荐)

修改/etc/rc.d/rc.local文件,设置服务自启动。

提示:/etc/rc.local/etc/rc.d/rc.local是软链接关系。

(如有忘记,请看这篇文章的最后一点

# 配置/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
/etc/rc.d/init.d/httpd start

注意:

最好不要写service启动方式,写/etc/init.d/路径的方式启动。因为service启动方式可能不能够百分之百被执行。

提示:

有一个问题,我编辑好/etc/rc.local配置文件,然后查询httpd服务的自启动状态,发现httpd服务的自启动状态没有改变,

如下图所示:

image

原因:

第二种方式是修改/etc/rc.local配置文件的方式实现服务自启动,第一种方式是使用chkconfig命令的方式实现服务自启动,你不能用方式二修改,用方式一的方式查询,因为两种方式不相干。

所以修改/etc/rc.local配置文件的方式配置服务自启动,只能通过查看配置文件来判断是否配置服务的自启动。相反同理。

还有一点要注意的是,一个服务用一种方式配置就可以了。

总结:

推荐用第二种方式配置服务的自启动管理。

RPM包安装的服务启动脚本都放在/etc/cr.d/init.d/目录中了,service命令、chkconfig命令、ntsysv命令都是到/etc/cr.d/init.d/目录中找服务的启动脚本,来启动服务。

而源码包安装的服务,是手动安装到指定位置的服务,你手动指定到哪里,服务就安装到哪个位置,所以以命令的方式是找不到源码包安装的服务的。

最后结论:

以命令方式不能直接管理源码包安装的服务,只有配置文件的方式既能能直接管理源码包安装的服务,又能管理rpm包安装的服务,所以推荐方式二。

方式三:

使用ntsysv命令管理自启动:

[root@localhost ~]# ntsysv [--level 运行级别]

选项:
  --level运行级别:可以指定设定自启动的运行级别

ntsysv命令和chkconfig命令说明:

ntsysv命令和chkconfig命令是通用的,用一个命令修改完,另一个命令中是可以查看到的。

你可以理解成chkconfig命令是手动命令行配置服务的开机自启动,

ntsysv命令是通过图形化界面配置服务的开机自启动,

只不过ntsysv命令默认赋予服务的自启动(系统运行级别)范围比较小。

如:chkconfig命令开启httpd服务的自启动默认系统运行级别开启为2345,而ntsysv命令只是开启3级别。

如下图所示:

image

示例:

# 1.执行ntsysv命令
[root@localhost ~]# ntsysv

# 2.或者加上系统运行级别
[root@localhost ~]# ntsysv --level 2345

出现ntsysv命令的图形化界面,如下图所示:

image

操作方式:

  • 上下键:在不同服务之间移动。
  • 空格键:选定或取消服务的自启动。就是在服务之前是否打入*
  • tab键:在不同项目间切换。
  • F1键:显示服务的说明。

在终端窗口执行ntsysv命令,所有通过RPM包安装的服务,在这里都能够找到,包括基于xinetd的服务。

3、验证

配置完服务自启动之后,重启一下计算机,看一下所配置的自启动服务是否启动,就是这么简单。

posted @ 2021-12-13 17:37  繁华似锦Fighting  阅读(288)  评论(0编辑  收藏  举报