首页 > 服务器学习 > Linux > systemd中Unit管理
2018
05-28

systemd中Unit管理

Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位),Unit一共分成12种。

Service unit:系统服务

Target unit:多个 Unit 构成的一个组

Device Unit:硬件设备

Mount Unit:文件系统的挂载点

Automount Unit:自动挂载点

Path Unit:文件或路径

Scope Unit:不是由 Systemd 启动的外部进程

Slice Unit:进程组

Snapshot Unit:Systemd 快照,可以切回某个快照

Socket Unit:进程间通信的 socket

Swap Unit:swap 文件

Timer Unit:定时器

一、查看命令

列出正在运行的Unit:systemctl list-units

列出所有Unit,包括没有找到配置文件的或者启动失败的:systemctl list-units --all

列出所有没有运行的 Unit:systemctl list-units --all --state=inactive

列出所有加载失败的 Unit:systemctl list-units --failed

列出所有正在运行的、类型为 service的Unit:systemctl list-units --type=service

二、设置开机启动

systemctl enable 和systemctl disable命令打开或关闭Unit的开机自启动。

三、查看运行状态

systemctl status命令用于查看系统状态和单个 Unit 的状态。

显示系统状态:systemctl status

显示单个Unit的状态:sysystemctl status bluetooth.service

显示远程主机的某个 Unit 的状态:systemctl -H root@rhel7.example.com status httpd.service

上面的输出结果含义如下:

Loaded行:配置文件的位置,是否设为开机启动

Active行:表示正在运行

Main PID行:主进程ID

Status行:由应用本身(这里是 httpd )提供的软件当前状态

CGroup块:应用的所有子进程

日志块:应用的日志

除了status命令,systemctl还提供了三个查询状态的简单方法,主要供脚本内部的判断语句使用。

显示某个 Unit 是否正在运行:systemctl is-active application.service

显示某个 Unit 是否处于启动失败状态:systemctl is-failed application.service

显示某个 Unit 服务是否建立了启动链接:systemctl is-enabled application.service

四、设置Unit的启动停止或重载

对于用户来说,最常用的是下面这些命令,用于启动和停止 Unit(主要是 service)。

启动一个服务:systemctl start apache.service

停止一个服务:systemctl stop apache.service

重启一个服务:systemctl restart apache.service

杀死一个服务的所有子进程:systemctl kill apache.service

重新加载一个服务的配置文件:systemctl reload apache.service

重载所有配置文件:systemctl daemon-reload

显示某个Unit的所有底层参数:systemctl show httpd.service

显示某个Unit的指定属性的值:systemctl show -p CPUShares httpd.service

设置某个Unit的指定属性:systemctl set-property httpd.service CPUShares=500

五、查看依赖关系

Unit之间存在依赖关系:A 依赖于 B,就意味着 Systemd 在启动 A 的时候,同时会去启动 B。

systemctl list-dependencies命令列出一个 Unit 的所有依赖。如systemctl list-dependencies nginx.service

输出结果之中,有些依赖是 Target 类型,默认不会展开显示。如果要展开 Target,就需要使用--all参数。

systemctl list-dependencies --all nginx.service

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。