为什么不是 ssh.service 而是 sshd.service?

为什么不是 ssh.service 而是 sshd.service?

当您修改后/etc/ssh/sshd_config,您可以执行systemctl restart sshd.service以反映更改。至少在我的环境中也systemctl restart ssh.service有效。并systemctl --all list-units ssh*告诉我没有任何名为 的服务sshd.service。那么为什么它被sshd.service广泛使用并且实际上有效呢?

(我知道 ssh 守护进程的名称是, sshd但我认为这不是合理的原因。)


linux mint 19我在( ubuntu-base)和volumio 2( -base)上执行了以下命令raspbian,这两个命令都是基于debian.

systemctl restart sshd.service; echo $? #=> 0
systemctl restart ssh.service; echo $? #=> 0
systemctl --no-legend --all list-units ssh* #=> only ssh.service exists

答案1

ssh 服务在 中始终被命名为 ssh /etc/services,可能无论发行版如何,因为它是SSH协议,而不是sshd守护进程。

那么这是有道理的,至少在 Debian 实现以及 Debian 衍生品中,选择了相同的名称来启动服务as ...service ssh start翻译成 system-V 风格/etc/init.d/ssh

这被保留在 systemd 中,再次是为了一致性,因为服务可以以旧式或 systemd 式方式无差别地启动。尽管如此,还定义了别名以与做出不同选择的其他发行版兼容:

[Install]
WantedBy=multi-user.target
Alias=sshd.service

因此两者都可以在 Debian 及其衍生版本上使用,并且它们代表相同的服务。

答案2

正如已经确定的,不同的发行版使用不同的名称。

两者都有正当理由

  • 服务器被调用sshd,因此sshd.service
  • sshd意思是“SSH Daemon”或“SSH Server”,因此“SSH Server Service”将是双倍的。

因此,这将是发行版维护者的偏好问题。这些偏好也可能会随着时间的推移而改变,我记得有一次 Suse 的服务名称从ntp改为。ntpd

相关内容