2023-06-12 14:03:54
WSL2 を絶対に停止したいときに唱えるコマンド

WSL2 が定期的に CPU 100% でメモリガバ食いみたいになってしまう問題があり、以前改善策に関するブログを書いた。
Refs: WSL2 が時々 CPU 100% 使っちゃうときは guiApplication=false の設定を入れると改善するかもしれない

しかしそれでもやっぱり WSL2 が暴走状態になってしまうことがあって、しょうがないからタスクキルしたいんだけどタスクマネージャーからの強制終了は受け付けてくれないし、コマンドプロンプトからの wsl2 --shutdown も応答が返ってこなくて効かないし、もはや PC を再起動するくらいしか打つ手がないかに見えていた。えれー不便。

しかし実は “絶対 WSL2 打ち倒すコマンド” があった。PowerShell を管理者権限で実行し、 taskkill /f /im wslservice.exe って打てばいいようだ。実際にこのコマンドで “突き刺さった状態の WSL2” が終了してくれた。
Refs: All WSL commands hang (including wsl –shutdown) but WSL is constantly using 30-40% CPU #8529

image
PowerShell を使って WSL2 ぶっちめたところ

いったんこれを事あるごとに実行することでそこまで不便を強いられる感じではなくなってきた。が、先述の issue も Open のままだし、早いところ根本対処が入って欲しいところではある。

参考 URL

2022-12-16 14:29:27
WSL2 が時々 CPU 100% 使っちゃうときは guiApplication=false の設定を入れると改善するかもしれない

近頃は業務でもプライベートでも WSL2 を使っているのだが、時々 (スリープ明け?) 100% に張り付いたままになってしまうことがある。guiApplication=false という設定を入れると改善する可能性がある。

ときどき CPU 100% 食ってる WSL2

WSL2 causing high CPU load #7893 - microsoft/WSL という issue が立っていて、2022-12-16 現在、この issue は close されているもののまだ直ってない問題のようだ。

自分の環境でもしばしばこの問題が起きていて、起きるたびにコマンドプロンプトから wsl --shutdown のようなコマンドを打って WSL2 を強制終了するという、解決ともいえない解決をする日々が続いていた。この現象が発生すると WSL は基本的になんの操作も受け付けなくなってしまうので、ぶち止めるより他にないのである。ちなみに重たいプロセスは一切起動してなくてもこの現象は起こる。Vim しか動かしてなくても起こる。
結構わずらわしくて、こんなことなら VirtualBox に適当な Linux でも入れたほうが幸せだったりするんでは?みたいなことまで考えていた。

guiApplication=false で一応改善したっぽい

で、先の issue には guiApplication=false をやってみなはれ、っていうコメントが投下されている。やってみたけど効かねえぞっていう返信もあり、まあ自分のところで効いたらラッキーくらいのノリで試してみたところ、どうも改善されたくさい。ありがたい。

具体的には、%userprofile%.wslconfig というファイルを作って以下の内容を書き込む。WSL2 を再起動すれば設定が適用される。

[wsl2]
guiApplications=false

実はメモリもガバガバ食う WSL2

ちなみに自分はここにさらにメモリの上限を制限する設定を追加している。ほっとくとメモリをガバガバ上限なく食ってしまうという現象 (いわゆるメモリリーク) が起きてしまうんでその対策。こっちの問題も未解決っぽい。

WSL2 自体は結構良い「Linux 体験」だと思っているので、この手の問題が起きてしまうのはちょっと惜しい。今後の改善に期待。

2021-12-22 20:00:08
Alpine Linux 上で git を使うときに色がつかなかったり全画面 pager になったりするのは GNU の less が入っていないから

Alpine Linux 上で作業をすることを余儀なくされるケースがあったのだが、git が色々と気に食わない (macOS や自分が普段使いしている Linux と表示が異なるという意味) ことになっていた。
GNU less をインストールすることで解決したのでメモしておく。

困り事

Alpine Linux で git を使うと、色々気に食わないことが起こる。

  • git branch を実行すると、画面全部を使った pager が起動する (いっぱいブランチがあるときには便利かもしれないが…)。
  • git log を実行したときに色がつかない。白黒。
  • git diff みたいなものも色がつかない白黒。

解決策

less を入れる。

sudo apk add less

これだけで先述の諸々は解決する。git branch も省スペースな感じで表示されるし、git loggit diff も色付きになる。

なんでこういうことが起こるのか

Alpine Linux に最初から入っている less は、Busybox 由来の less であるらしい。
Refs: https://wiki.alpinelinux.org/wiki/Alpine_Linux:FAQ#How_to_enable.2Ffix_colors_for_git.3F

曰く、

The problem is not in git itself or terminal, but in the less command. Busybox’s less doesn’t support -r (--raw-control-chars) and -R (--RAW-CONTROL-CHARS) options.
The simplest (yet not ideal) solution is to install GNU less:
apk add less

ということである。Busybox の less は省機能で作られているってことかしらね。