MX Linuxにおいてsystemctl
コマンドを使用した際に下記のようなエラーが生じました.
systemctl status cron.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
この記事では,”System has not been booted with systemd as init system (PID 1). Can’t operate. Failed to connect to bus: Host is down”のトラブルシューティングを記載します.
原因
MX LinuxのデフォルトのinitプロセスはSysVinitであり,Systemdが無効になっているようです.
下記コマンドで実際に確認してみるとSysVinitとなっています.
ps -p 1
PID TTY TIME CMD
1 ? 00:00:02 init
当然のことながら,SystemdではなくSysVinitではsystemctl
が利用できません.
なお,確認したMX LinuxはMX 21.2.1 Wildflowerです.
解決方法
解決方法は,initプロセスをSysVinitからSystemdに変更するだけです.
「方法 1」と「方法 2」の二つの方法を示します.(方法1の方がわかりやすくて簡単です.)
1. まず右下のボタンより,[MX Tools]を開きます.
2. [MX Tools]の中から[Boot Options]を開きます.
方法 1
Boot optionの”Boot to”をAdvanced optionsの「MX … (systemd)」に変更します.
「Apply」ボタンで設定を保存した後,再起動します.
方法 2
Boot optionの”Kernel parameters”の初期値がquiet splash
となっているので,quiet splash init=lib/systemd/systemd
に変更します.
「Apply」ボタンで設定を保存した後,再起動します.
Systemdの確認
再起動後に,下記コマンドでPIDがsystemdになっていることが確認できます.
ps -p 1
PID TTY TIME CMD
1 ? 00:00:02 systemd
これで,systemctl
コマンドが利用できるようになりました.