systemd
systemd启动时的运行步骤:
- systemd加载配置信息;
- systemd判定启动目标,通常是default.target;
- systemd判定启动目标的所有依赖关系;
- systemd激活依赖的组件并启动目标;
- 启动之后,systemd开始响应系统消息(诸如uevent),并且激活其他组件。
依赖
- Requires:表示不可缺少的依赖关系。如果一个单元有此类型的依赖关系,systemd会尝试激活被依 赖的单元,如果失败,systemd会关闭被依赖的单元。
- Wants:表示只用于激活的依赖关系。单元被激活时,它的Wants类型的依赖关系也会被systemd激 活,但是systemd不关心激活成功与否。
- Requisite:表示必须在激活单元前激活依赖关系。systemd会在激活单元前检查其Requisite类型依赖 关系的状态。如果依赖关系还没有被激活,单元的启动也会失败。
- Conflicts:反向依赖关系。如果一个单元有Conflict类型的依赖关系,且它们已经被激活,systemd会 自动关闭它们。同时启动两个有反向依赖关系的单元会导致失败。
添加系统服务
1.编写服务脚本
shell
[Unit]
After=network.service
[Service]
ExecStart=/path/to/run/cmd.sh
[Install]
WantedBy=default.target2.设置权限
shell
sudo chmod 664 /etc/systemd/system/your.service3.安装并使能服务
shell
sudo systemctl daemon-reload
sudo systemctl enable disk-space-check.service