因此,您正在关注互联网上的一些教程,并且您使用了 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) 启动。无法运行。” 错误了。
请让我知道这是否有助于您摆脱此错误。 我很乐意帮助你。