修复“系统尚未使用 systemd 作为 init 系统启动”错误

因此,您正在关注互联网上的一些教程,并且您使用了 systemd 命令,例如 sudo systemctl start.

令您惊讶的是,该命令会导致如下错误:

System has not been booted with systemd as init system (PID 1). Can't operate.

原因:你的 Linux 系统没有使用 systemd

原因是您尝试使用 systemd 命令来管理 Linux 上的服务,但您的系统没有使用 系统 并且(很可能)使用经典 系统初始化 (sysvinit) 系统。

但这怎么可能? 您正在使用 Ubuntu 该教程也适用于同一版本的 Ubuntu。 为什么它不适合你?

如果您在使用 WSL 的 Windows 中使用 Ubuntu,您将使用 SysV 而不是 systemd,并且当您运行 systemctl 命令(适用于具有 systemd init 系统的 Linux 系统)时,您的系统会报错。

如何知道您使用的是哪个初始化系统? 您可以使用此命令了解与 PID 1 关联的进程名称(系统上运行的第一个进程):

ps -p 1 -o comm=

它应该在输出中显示 init 或 sysv(或类似的东西)。 如果您看到 init,您的系统没有使用 systemd,您应该使用 init 命令,如下一节所述。

如何修复“系统尚未使用 systemd 启动”错误?

简单的答案是不使用 systemctl 命令。 而是使用等效的 sysvinit 命令。

它并不太复杂,两个命令的语法有些相似。

这张表应该对你有所帮助。

系统命令Sysvinit 命令
systemctl start service_name服务 service_name 开始
systemctl stop service_name服务 service_name 停止
systemctl 重启服务名称服务 service_name 重新启动
systemctl 状态服务名称服务 service_name 状态
systemctl 启用服务名称chkconfig service_name on
systemctl 禁用服务名称chkconfig service_name 关闭

无论您遵循哪个教程,尝试使用等效命令,您都不会看到“系统尚未使用 systemd 作为 init 系统 (PID 1) 启动。无法运行。” 错误了。

请让我知道这是否有助于您摆脱此错误。 我很乐意帮助你。