RHEL 7服务控制

1、什么是服务控制?
服务的控制指的是我们对系统服务的启动、停止、重启、重新载入、查看状态以及设置服务开机是否自启动等操作。

2、RHEL 7中服务控制的变化
(1)在RHEL 6及以前的版本,我们对服务的控制使用的是service 和 chkconfig密令,在RHEL 7中服务控制的命令发生了变化,我们将使用systemctl命令来控制服务,systemctl集成了service和chkconfig的功能。
(2)Linux中会有一个最先启动的集成PID为1,我们认为这个PID为1的进程是所有进程的父进程。RHEL 6中PID为1的进程由程序"/sbin/init"启动,但在RHEL 7中PID为1的进程被程序"/usr/lib/systemd/systemd"代替了(可以使用ps -aux | more来查看),也就是说在RHEL 7中对服务的控制会使用systemd来完成
(3)虽然RHEL 7中在一定程度上可以使用service命令来控制服务,但建议使用systemctl

3、systemd的主要作用有2个
(1)服务的运行控制(启动、停止、重启、状态查看、重新载入)
(2)设置服务在开机时是否自启动

4、systemd的优点
(1)提高系统的启动速度,因为它能够提供并行功能,保证服务同时开启
(2)可以按需启动守护进程,而不再需要一个单独的服务
(3)自动对服务器的依赖进行管理,还可以防止超时。比如:某个服务的运行前提条件是网络连接必须可用,那么当网络连接不可用的时候,那么就没必要启动这个服务了
(4)使用Linux控制组追踪相关进程模式

5、systemd控制单元
在RHEL 7中多了一个控制单元的概念,后续我们在使用systemctl命令操作服务的时候服务名后边需要指定控制单元的类型,可以使用systemctl -t help命令查看所有的控制单元类型

6、systemctl 命令格式
systemctl的命令格式为: systemctl 命令 名称.类型
命令:stop start reload等
名称:服务名称
类型:控制单元类型

7、systemctl常用命令
[root@abc /]# systemctl -t help #显示所有单元类型

[root@abc media]# systemctl status sshd.service #查看sshd服务状态

[root@abc media]# systemctl stop sshd.service #停止sshd服务

[root@abc media]# systemctl start sshd.service #启动sshd服务

[root@abc media]# systemctl restart sshd.service #重启sshd服务

[root@abc media]# systemctl reload sshd.service #重新载入sshd服务,restart和reload的区别在于:restart是先关闭服务,再开启一个新的服务,reload在我们修改了服务的配置文件,只需要重新载入配置文件,不需要重启和关闭服务时使用,reload服务的进程号不会变

[root@abc media]# systemctl is-active sshd.service #查看sshd服务是否处于活动状态;如过服务处于活动状态显示"active",如果服务为安装或处于非活动状态则显示"unknown"

[root@abc media]# systemctl is-enabled sshd.service #查看sshd服务开机是否自启动

[root@abc media]# systemctl enable sshd.service #设置sshd开机自启,命令执行成功会在“/etc/systemd/system/multi-user.target.wants/”目录下创建一个名为“sshd.service”,软链接的源为“/usr/lib/systemd/system/sshd.service”;multi-user.target.wants代表当前的运行级别

[root@abc media]# systemctl disable sshd.service #关闭sshd开机自启,命令执行成功会删除“/etc/systemd/system/multi-user.target.wants/”目录下的软链接“sshd.service”

[root@abc media]# systemctl list-units #列出所有单元

[root@abc media]# systemctl list-units --type=service #列出所有service类型的单元

[root@abc media]# systemctl list-units --type=service --all #加上--all参数,service类型的单元活动的非活动的都会列出

[root@abc media]# systemctl list-unit-files --type=service | grep enabled #查看已启动的服务列表

[root@abc media]# systemctl list-unit-files --type=service | grep sshd #将和sshd相关的文件同时列出来

查看服务状态示例:
红色方框内的"enabled"代表服务开机会自启动
RHEL 7服务控制

猜你喜欢

转载自blog.51cto.com/2638441/2312700