3.2.7. 定制 systemd
使用默认安装,通过 systemd
启动的过程中,在 network.target
启动后,很多网络服务 (参见 第 6 章 网络应用)作为后台守护进程(daemon)启动。 “sshd
“ 也不列外。让我们修改为按需启动”sshd
“ 作为一个定制化的例子。
首先,禁用系统安装的服务单元。
$ sudo systemctl stop sshd.service
$ sudo systemctl mask sshd.service
传统 Unix 服务的按需套接字激活(on-demand socket activation)系统由 indetd
超级服务来提供。在 systemd
下, 相同功能能够通过增加*.socket 和 *.service 单元配置文件来启用。
sshd.socket
用来定义一个监听的套接字
[Unit]
Description=SSH Socket for Per-Connection Servers
[Socket]
ListenStream=22
Accept=yes
[Install]
WantedBy=sockets.target
sshd@.service
作为 sshd.socket
匹配的服务文件
[Unit]
Description=SSH Per-Connection Server
[Service]
ExecStart=-/usr/sbin/sshd -i
StandardInput=socket
然后重新加载。
$ sudo systemctl daemon-reload