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