![一个systemd需要多少个单元文件](https://linux22.com/image/112494/%E4%B8%80%E4%B8%AAsystemd%E9%9C%80%E8%A6%81%E5%A4%9A%E5%B0%91%E4%B8%AA%E5%8D%95%E5%85%83%E6%96%87%E4%BB%B6.png)
https://fedoramagazine.org/systemd-converting-sysvinit-scripts/状态
这是一个有趣的事实:由 184 行 shell 脚本处理的所有内容现在都由 27 行 systemd 配置处理,分布在两个单元文件中。
我可以在 /usr/lib/systemd/system/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
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
需要什么第二个文件以及它位于哪里?
答案1
本文中的 init 脚本sshd-keygen
在开始之前启动sshd
,因此所引用的第二个单元文件可能就是该/usr/lib/systemd/system/sshd-keygen.service
文件。
请注意,在 systemd 情况下,sshd-keygen
并不是严格要求的,sshd
因为它配置了Wants=sshd-keygen.service
选项。即使sshd-keygen.service
失败或不可用,sshd
仍将由 systemd 启动。但是,在本文链接的 init 脚本中,这是一个严格的要求,因为如果sshd-keygen
失败或不可用,脚本将会失败。
答案2
第二个文件是sshd-keygen.service
,在上面的代码片段中引用了该文件。
您可以使用它locate sshd-keygen.service
来查找系统上的文件。它可能位于/usr/lib/systemd/system/sshd-keygen.service
.