通常、Ubuntuの停止や再起動はshutdownコマンドやrebootコマンドを使って行うが、WSLで動作するUbuntuではこの方法が使用できない。WSL(正確にはWSL 2)は仮想マシンで動作するLinuxという位置づけだが、そのあたりはちょっとばかり仕組みが異なっている。今回は、WSLで、Ubuntuの起動やシャットダウンを行う方法を紹介しよう。→連載「WindowsでUbuntuをはじめる」のこれまでの回はこちらを参照。
WSLではshutdownコマンドやrebootコマンドが動かない(少なくとも本稿執筆時点では)
第12回で、スーパーユーザーの権限が必要なコマンドはsudoコマンドによって実行できることを取り上げた。Ubuntuの終了や再起動の処理はスーパーユーザーの権限が必要だ。そして、そのコマンドはshutdownコマンドやrebootコマンドなので、sudoと組み合わせて実行することで、Ubuntuを停止したり再起動させることができる。
しかし、WSLで動作するUbuntuではこのコマンドが使用できない。試しに、次のようにshutdownコマンドやrebootコマンドを実行すると、エラーとなってコマンドが正常に実行されない。
shutdownコマンドの実行サンプル
daichi@VAIO-SX14:~$ sudo shutdown -h now
[sudo] password for daichi:
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 talk to init daemon.
daichi@VAIO-SX14:~$
rebootコマンドの実行サンプル
daichi@VAIO-SX14:~$ sudo reboot
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 talk to init daemon.
daichi@VAIO-SX14:~$
Hyper-VやVMware、VirtualBoxといった仮想化アプリケーションでUbuntuを実行していたり、そのほかのハイパーバイザ、またはベアメタルでUbuntuを実行していたりするなら、shutdownコマンドやrebootコマンドでUbuntuの終了・再起動が可能だ。