修复 "System has not been booted with systemd as init system "的错误。

如果你按照网上的一些教程,使用systemd命令,如sudo systemctl start。
令你惊讶的是,该命令的结果是这样的错误。
System has not been booted with systemd as init system (PID 1). Can't operate.
原因:您的Linux系统没有使用systemd。
原因是你想用systemd命令来管理Linux上的服务,但你的系统并没有使用systemd,(很可能)使用的是经典的SysV init(sysvinit)系统。
但这怎么可能呢?你使用的是Ubuntu,教程也是针对同一版本的Ubuntu。为什么你不能用呢?
如果你在Windows里面用WSL使用Ubuntu,那么你的系统就会有SysV而不是systemd,当你运行systemctl命令时,你的系统就会抱怨(针对Linux系统的systemd init系统)。
如何知道你使用的是哪个init系统?你可以使用这个命令来知道与PID 1(系统上运行的第一个进程)相关联的进程名称。
ps -p 1 -o comm=
它应该在输出中显示systemd或sysv(或类似的东西)。
如何解决'System has not been booted with systemd'错误?
答案很简单,就是不要使用systemctl命令,而是使用等同的sysvinit命令。相反,可以使用对应的sysvinit命令。
这并不复杂,而且这两个命令的语法有些相似。
这张表应该可以帮助你。

不管你是按照哪一个教程,试着使用等效的命令,你就不会再看到错误了。

posted @ 2021-12-29 21:58  rookiexwang  阅读(4215)  评论(0编辑  收藏  举报