Ubuntu 16.04 Systemd 无法使用 systemctl

Ubuntu 16.04 Systemd 无法使用 systemctl

我有一台 Ubuntu 16.04 服务器,自上次重启后,systemctl 不再起作用。

例如如果我想启动 nginx,我会收到以下错误:

root@SERVER:/# systemctl start nginx
Failed to start nginx.service: Unknown unit: nginx.service

对于其他所有服务,结果都相同。只需执行 systemctl 即可得到以下结果:

root@SERVER:/# systemctl
Failed to list units: No such method 'ListUnitsFiltered'

谢谢

答案1

看起来你的操作系统出了点问题。也许你不小心移动或删除了文件或类似的东西。

只需单独调用 systemctl 即可产生如下输出:

UNIT                                                                     LOAD   ACTIVE SUB       DESCRIPTION
proc-sys-fs-binfmt_misc.automount                                        loaded active running   Arbitrary Executable File Formats File System Automount Point
sys-devices-pci0000:00-0000:00:07.1-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device loaded active plugged   VMware_Virtual_IDE_CDROM_Drive

似乎有些东西坏了,怀疑它会影响到的不仅仅是 systemctl。您可以使用 service 或 init.d 样式启动来启动服务吗?

如果您不能,那么我想您最好重新安装。

答案2

在将 14.04 Ubuntu 升级到 16.04 后,我遇到了类似的问题。不知何故,软件包systemd没有正确安装,我遇到了与此问题中描述的相同的问题。解决方案是重新安装相关软件包:

apt-get install --reinstall systemd-sysv ubuntu-standard

https://wiki.ubuntu.com/SystemdForUpstartUsers了解更多信息。

相关内容