异常
现象为在命令行执行systemctl
命令,报如下错误:
1 2
| System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down
|
解决方法
参考了之后给出如下解决方案:
- 安装daemonize和fontconfig
1
| sudo apt install -y fontconfig daemonize
|
- 编辑
/etc/profile
脚本,加入如下内容:
1 2 3 4 5 6 7 8 9 10
| SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
if [ -z "$SYSTEMD_PID" ]; then sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}') fi
if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME fi
|
- 修改
/etc/sudoers
文件,加入如下内容:
1 2
| %sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target %sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
|
- 执行
source /etc/profile
或者是重新打开terminal,执行systemctl验证是否能够正常操作。
附件
相关连接