2023.09.14
【WSL】systemctlを使う

ValentinによるPixabayからの画像

はじめに

MySQLの起動コマンドを調べているときに「systemctl」というコマンドを見かけてたのですが、WSLではデフォルトでは使えないようです。

コマンドを打ち込むとこんな↓エラーが出ます。

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

便利そうなのでWSLでも使えるようにしたので、その手順のメモです。

やり方は簡単で、wsl.confに2行追記し、WSLを再起動するだけです。

動作確認した環境

OS:Windows11 Home / WSL(Ubuntu20.04)
DB:mysql v8.0.34

wsl.confを編集

WSLにログインし、/etc/wsl.confに以下を追記します。
※もし/etc/wsl.confが無ければ作成してください。

[boot]
systemd=true

WSLの再起動

wslからログアウトし、wslをシャットダウンします。

wsl --shutdown

シャットダウン出来たらWSLを起動しログインします。

以上で「systemctl」コマンドが使えるようになっているはずです。

MySQLを起動してみる

以下のコマンドでMySQLを操作できます。

起動
sudo systemctl start mysql

停止
sudo systemctl stop mysql

再起動
sudo systemctl restart mysql

ステータス表示
sudo systemctl status mysql