修复“系统尚未使用systemd作为启动系统启动”错误
因此,我们正在关注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关闭|