跳转至

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
1
2
3
4
5
6
7
8
[Unit]
After=network.service

[Service]
ExecStart=/path/to/run/cmd.sh

[Install]
WantedBy=default.target

2.设置权限

Bash
1
sudo chmod 664 /etc/systemd/system/your.service

3.安装并使能服务

Bash
1
2
sudo systemctl daemon-reload
sudo systemctl enable disk-space-check.service