Systemd 入门教程:实战篇
Systemd 入门教程:实战篇 $ systemctl cat sshd.service [Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID Type=simple KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target [Unit] 区块:启动顺序与依赖关系 After 字段:表示如果 network.target 或 sshd-keygen.service 需要启动,那么 sshd.service 应该在它们之后启动。
相应地,还有一个 Before 字段,定义 sshd.service 应该在哪些服务之前启动。
注意,After 和 Before 字段只涉及启动顺序,不涉及依赖关系。
设置依赖关系,需要使用 Wants 字段和 Requires 字段
Wants 字段:表示 sshd.service 与 sshd-keygen.service 之间存在"弱依赖"关系,即如果"sshd-keygen.service"启动失败或停止运行,不影响 sshd.service 继续执行。
Requires 字段则表示"强依赖"关系,即如果该服务启动失败或异常退出,那么 sshd.service 也必须退出。
注意,Wants 字段与 Requires 字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。