systemd是按照单元(unit)来管理系统的,一共有12种单元的类型,上面讨论涉及到的service也是单元的类型之一:主要的单元有以下的如示:
单元 | 说明 |
service | 启动和守护进程 |
target | 单元组 |
socket | 从套接字接收信息启动服务 |
device | 设备检测以启动服务 |
mount | 挂载文件系统 |
outmount | 自动挂载文件系统 |
swap | 设置交换空间 |
其中,套接字是进程之间的一种通信机制。unit表示不同类型的systemd对象通过相关的配置文件进行标识、识别等,文件等,文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。
想查看系统中所有的活动单元,例如服务和目标,可以使用systemctl命令。下面是利用systemctl的结果:
也可以使用systemctl list-units命令效果相同。
systemctl的子命令
systemctl命令的固定格式;
systemctl {子命令}[服务]:
常见的子命令如下表:
子命令 | 说明 |
start | 启动(激活)单元 |
restart | 重新启动单元 |
stop | 停止使用单元 |
status | 人机界面状态 |
enable | 启用设备,使其在系统启动时自动启动 |
disable | 禁用设备,以使其在系统启动时不会自动启动 |
isolate | 启动单元和从属单元,停止所有其他单元(在更改活动目标时使用) |
list-units | 显示所有活动单元(省略子命令时的默认值) |
systemctl命令负责管理的主要服务:
服务 | 说明 |
httpd | HTTP Web服务 |
sshd | SSH服务 |
NetworkManager | NetworkMnanager服务 |
udisks2 | 自动磁盘安装服务 |
gdm | GDM显示管理器 |
;ightdm | LightDM显示管理器 |
postfix | Postfix邮件服务 |
下面以gdm服务为例:我在Ubintu种输入systemctl status gdm.service命令后所显示gdm的服务状态。
从上面可以看出:处于活动状态,如果处于不活动的状态会显示inactive。
3.systemd相关服务配置文件里的设置项
在终端输入命令cat /usr/lib/systemd/system/sshd.service查看里面的设置项,也可以先用cd /usr/lib/systemd/system/目录下,再使用cat sshd.service查看服务的设置项。
这个配置文件大致由三个部分组成:[Unit]、[Service]、[install],每一个部分里面又包含了不同的设置项。含义如下:
设置项 | 含义 |
Unit | 与执行服务的依赖性有关,比如在服务之后启动此单元(unit)的设置项 |
Service | 规定了服务的环境配置文件{EnvironmentFile}、重新启动的方式等等 |
install | 规定了此unit安装的target,比如muti-user.target. |
里面包含的设置项:
-
设置项 | 说明 |
Documentation | 向管理员提供更详细的查询功能 |
After | 用来说明服务的启动顺序 |
Wants | 规定了此unit还要启动的服务 |
EnvironmentFile | 指定脚本启动的环境配置文件 |
ExecStart | 实际执行这个程序的命令或者脚本 |
EXecReload | 与systemctl reload有关的命令 |
KillMode | process表示程序终止时,只会终止主要的进程。 |
WantedBy | 表示这个unit依赖的主要target |
systemctl命令无法更改的服务
虽然systemctl命令很强大,但是也有管理不了的服务,那就是systemd-journald.service(日志服务)、systemd-udevd.service(设备事件管理服务)和systemd-logind.service(登录管理服务)。这是因为这三个服务状态被设置了静态(static),所以systemctl命令无法启动使用(enable)或者(禁用)(disable).
systemd在sysinit.target之前启动了两个服务systemd-journald和systemd-udevd.service,在muti-user.target之前启动服务systemd-logind.service。
命令ps -ef |grep -e journald -e udevd -e logind,出现下面的结果:
出现如上结果说明正在运行.
标签:systemd,服务,service,强大,命令,systemctl,单元 From: https://blog.51cto.com/u_15912723/6486090