WSL上のUbuntuを安全にシャットダウンする

ALL
スポンサーリンク

WSL上のUbuntuで、wsl.exe -t $WSL_DISTRO_NAME 実行でUbuntuを終了させられますが、この方法はいきなりUbuntuを終了させるもので、想定するシャットダウンではありません。通常のターミナルのログアウト処理も無くbash_history 等は更新されないままになります。

WSL上からシャットダウンしたい場合は、sudo shutdown -h now の方を実行します。
実行すると、シャットダウン処理でターミナルからログアウトします。
この時、コマンドプロンプトで wsl -l -v を実行してステータスを確認してみると、少しの間 Running のままで、それから Stopped になりシャットダウン完了です。

>wsl -l -v
  NAME                    STATE           VERSION
* Ubuntu-24.04            Running         2

sudo shutdown -h now 実行ではパスワードを聞かれますが、スクリプトからシャットダウンしたい場合はキー入力が要求されるのは都合が悪いです。
WSL上でsudo無しにroot権が必要なコマンドを実行する – パソコン鳥のブログ の方法で、下記のように実行するとパスワード聞かれることなく、シャットダウンできます。

/mnt/c/windows/system32/wsl.exe --user root -- shutdown -h now

コメント