WSL2 の CentOS8 で systemctl コマンドを実行できるようにする手順について解説します。
先日、Windows 10 上で WSL2 で CentOS8 を起動できるようにしましたが、systemctl コマンドを実行すると以下のようなエラーが出力されました。
■systemctl コマンドを実行したところエラーが出力
[root@LAPTOP-2N8G36AO System32]# systemctl status sshd.service ← systemctlコマンドを実行したところ以下のエラーが出力
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
|
■systemctl コマンドを実行したところエラーが出力
[root@LAPTOP-2N8G36AO ~]# systemctl
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
|
Failed to connect to bus: Host is down の原因
検索をすると多数のサイトが表示されますが、要は init が PID 1 で起動しているからとなります。
■ps コマンドの結果
[root@LAPTOP-2N8G36AO System32]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:03 ? 00:00:00 /init ← initのPIDが1になっています。
root 127 1 0 11:43 ? 00:00:00 /init
root 128 127 0 11:43 ? 00:00:00 /init
root 129 128 0 11:43 pts/0 00:00:00 -bash
root 149 129 0 11:47 pts/0 00:00:00 ps -ef
[root@LAPTOP-2N8G36AO System32]#
|
CentOS8での手順
Ubuntuでの手順はいろいろありましたが、CentOS8 でも以下のように簡単に設定ができたので、今回私が実行した手順を記載します。
■genie のパッケージを取得
[root@LAPTOP-2N8G36AO ~]# wget https://github.com/arkane-systems/genie/releases/download/v1.36/genie-1.36-1.fc33.x86_64.rpm
|
■genie のパッケージを取得
[root@LAPTOP-2N8G36AO ~]# dnf install genie-1.36-1.fc33.x86_64.rpm
|
■genie の初期化
genie -i コマンドで genie を初期化します。
[root@LAPTOP-2N8G36AO ~]# genie -i
Waiting for systemd….!!!!!!!!!!!!
[root@LAPTOP-2N8G36AO ~]#
|
■genie の起動
genie -s コマンドで genie を起動します。
[root@LAPTOP-2N8G36AO ~]# genie -s
|
■genie コマンドの Readme
https://github.com/arkane-systems/genie
動作確認
■psコマンドで確認
[root@LAPTOP-2N8G36AO-wsl ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:09 ? 00:00:00 systemd ← PID 1 が systemd になりました。
root 18 1 0 12:09 ? 00:00:00 /usr/lib/systemd/systemd-journald
root 34 1 0 12:09 ? 00:00:00 /usr/lib/systemd/systemd-udevd
dbus 50 1 0 12:09 ? 00:00:00 /usr/bin/dbus-daemon –system –address=systemd: –nofork –nopidfil
root 56 1 0 12:09 ? 00:00:00 /usr/bin/rhsmcertd
root 102 1 0 12:09 ? 00:00:00 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305
root 129 1 0 12:09 ? 00:00:00 /usr/lib/systemd/systemd-machined
root 130 1 0 12:09 pts/1 00:00:00 /bin/bash -l
root 131 130 0 12:09 pts/1 00:00:00 (sd-pam)
root 150 130 0 12:21 pts/1 00:00:00 ps -ef
[root@LAPTOP-2N8G36AO-wsl ~]#
|
■systemctl コマンドで確認
[root@LAPTOP-2N8G36AO-wsl ~]# systemctl status sshd.service
● sshd.service – OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-08-29 12:09:42 JST; 40min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 102 (sshd)
Tasks: 1 (limit: 26213)
Memory: 1.1M
CGroup: /system.slice/sshd.service
└─102 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc>
Aug 29 12:09:42 LAPTOP-2N8G36AO-wsl systemd[1]: Starting OpenSSH server daemon…
Aug 29 12:09:42 LAPTOP-2N8G36AO-wsl sshd[102]: Server listening on 0.0.0.0 port 22.
Aug 29 12:09:42 LAPTOP-2N8G36AO-wsl sshd[102]: Server listening on :: port 22.
Aug 29 12:09:42 LAPTOP-2N8G36AO-wsl systemd[1]: Started OpenSSH server daemon.
[root@LAPTOP-2N8G36AO-wsl ~]#
|
参考サイト
以下のサイトを参考にしました。ありがとうございました。
Failing systemd Services in CentOS 8-Stream
WSL2上のCentOS8でsystemctlを使えるようにする
コメント