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

时间:2020-03-05 15:29:50  来源:igfitidea点击:

因此,我们正在关注Internet上的一些教程,并且使用了诸如sudo systemctl start之类的systemd命令。

令我们惊讶的是,该命令导致如下错误:

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。

为什么对我们不起作用?

如果我们在使用WSL的Windows内部使用Ubuntu,则将拥有SysV而不是systemd,并且在运行systemctl命令时该系统会报错(适用于具有systemd init系统的Linux系统)。

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

ps -p 1 -o comm=

它应该在输出中显示systemd或者sysv(或者类似的东西)。

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

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

不太复杂,两个命令的语法都差不多。

该表应为我们提供帮助。

| systemd命令| sysvinit命令|
| --- - | --- |
| systemctl start service_name |服务service_name开始|
| systemctl stop service_name |服务service_name停止|
| systemctl restart service_name |服务service_name重新启动|
| systemctl status service_name |服务service_name状态|
| systemctl enable service_name | chkconfig service_name on |
| systemctl disable service_name | chkconfig service_name关闭|