Windows 11 からかはわからないが、WSL2 がしばらく放置していると自動でシャットダウンされるようになった。
ターミナルや VS codeを全て閉じるとシャットダウンされる傾向にあるようで、例えば ssh-agent や systemd の service が動いていてもいつの間にかシャットダウンされるので厳しい。
調べてみると init にぶら下がっているプロセスがなくなると死ぬのでは?ということだった。 vmIdleTimeout
の情報も出てくるが、これは WSL2 が乗っている VMを起動させ続ける話で、WSL2 で動いている Ubuntuなどは関係なく終了する。
対策として、Powershell側から wsl.exe を発行し続けるなど色々あるみたいだが、 /etc/wsl.conf
に起動コマンドを設定することで回避ができたのでメモ。
/etc/wsl.conf
で以下のように設定すると sleep
コマンドが init にぶらさがって起動してくれる。
[boot] command=sleep infinity
これで設定してから数日経ったが、起動し続けてくれていそう。