我有一台 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