systemd


https://www.freedesktop.org/wiki/Software/systemd/

systemd

Socket Unit:进程间通信的 socket
Service unit:系统服务
Target unit:多个 Unit 构成的一个组

列出docker 依赖发服务

systemctl list-dependencies docker

基本结构

配置文件位置 /usr/lib/systemd/system

[Unit]
[Service]
[Install]

详细参数

[Unit]
Description=
Documentation=
After=  当前服务在他们之后启动
Wants=network-online.target 若依赖。配合当前unit 启动 如果network-online.target 不会影响当前服务启动
Requires=  强依赖。 当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
[Service]
Type=notify  # 当前服务启动完毕,会通知Systemd,再继续往下执行
EnvironmentFile=/run/flannel/subnet.env   # 文件是key=value的变量组成,可以在启动命令中通过 $key 的方式引用变量
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  启动当前服务的命令
ExecReload=/bin/kill -s HUP $MAINPID 重启当前服务时执行的命令
TimeoutSec=0		定义 Systemd 停止当前服务之前等待的秒数
RestartSec=2		自动重启当前服务间隔的秒数
Restart=always	定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
[Install]
WantedBy=multi-user.target

修改/新建配置文件后使用 systemctl daemon-reload 加载配置文件
使用systemctl 管理的应用可以使用 journalctl -u flanneld 查看日志