WSL

WSL Bashが起動できない問題を解決する方法

Windows LinuxのWSL Bashが起動できない問題が発生したので、解決方法のための備忘録です。

Conemu上のWSL Bashにて以下のようなコマンドを実行した所、よくわからない出力が出てきたのち、conemu上のbashのウィンドウのカーソルが全く動かなくなってしまった。conemu上のpowershellは動くので、conemuの問題というわけではなさそう、ということでwin-rよりbashを単体で起動してみようとしたが、bashのログインシェルが起動する前にウィンドウごとクラッシュしてしまった。


output(){
gen_data_by_regex_in_bulk | out | google
    : <<<'
    stdout output to file utility.
    e.g.
  echo hoge | tee >( output ) | ag .

  gen_data_by_regex_in_bulk | out | clip
  gen_data_by_regex_in_bulk | out | google
  outputg | wc
  outputg | ...
    '


    output="$( python3 -c "import sys; print( sys.stdin.read() )" )"
    # echo "${output}" > "${1:-"${HOME}/output.txt"}"
    echo "${output}" > "${1:-"${OUTPUT_FILE}"}"

}

out(){

  : abbreviation of output

  tee >( output )

}


echo hogehoge | tee>(output) | tee

今気づいたが、output()のすぐ下にある gen_data_by_regex_in_bulk | out | googleの記述は意図しないものである。今ここにコピペしてはじめて気づいた。ちゃんとコードを書いたはずなのにどこがおかしかったのかと思っていたが、どうやらこれがループを引き起こしてメモリリーク的なものを引き起こしてしまったのかもしれない。Bash自体が死んでしまっていないことを祈るばかりである。

こうなってしまうとおそらくWSLの再インストールをすることになるかもしれないが、勘で単純なosの再起動では解決出来ないような気がしていた。なにか方法はないかと探していると、以下のようにメモリ関係の設定を変更してやるとできるという情報があった。全く同じ状況であるわけではないが、にている状況ではあるので試してみる。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_8a054971-f9e3-4de7-a0a6-177c54121db1.png

Run windows + R
type SystemPropertiesAdvanced
click settings in performance group
In advanced tab, click Change under Virtual Memory and deselect the automatically manage paging file size for all drives
Select custom size and enter 800 for initial size, 1024 for maximum size.
Apply changes and restart.

windows 10 – WSL Bash doesn’t start – Super User
Bash not starting · Issue #849 · microsoft/WSL

再起動してみましたら予想通り治ってくれました。よかったぁ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です