我刚刚在虚拟机上安装了 Ubuntu Server 16.04,然后安装了 openssh-server。当我尝试启用 sshd 时:
systemctl enable sshd.service
我收到此消息:
Failed to execute operation: Too many levels of symbolic links
有人知道这是什么吗?我是不是忘了做什么了?
答案1
这是因为服务名称实际上是ssh.service
,而不是sshd.service
。
这样做:
systemctl enable ssh.service
解释
安装 时openssh-server
,该服务会在 systemd 中自动启用。在启用过程中,还会为已启用的符号链接创建。如果您执行或sshd.service
,此符号链接将消失。systemctl disable ssh.service
systemctl disable sshd.service
您可以看到此处据称创建了符号链接:
root@node51 [~]# systemctl enable ssh.service
Synchronizing state of ssh.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable ssh
Created symlink from /etc/systemd/system/sshd.service to /lib/systemd/system/ssh.service.
由于 systemd 的设计,systemd 不会启用符号链接服务。
这是在 Red Hat Bugzilla 上讨论。