WindowsでシェルをzshにしてWSLを利用しているのですが、起動した瞬間や、Enterで改行、なにかコマンド(ls,cd,gcc,go,...)を実行するとzshにawkがぶら下がった謎のプロセスが知らぬ間に生成されます。そのため現在Windowsのタスクマネージャーでプロセスをみるとzshのプロセスが電力消費が非常に高いとなっており手動でタスクの終了を押したり、htopでkillを実行したりという状況です。
シェルをbashに変更すると、おかしなプロセスは生成されなくなったためzshに問題があると思うのですが原因を特定するためにできることは何があるでしょうか。また、以下のように原因調査のために試したことがあるのですが何か気づいたことはあるでしょうか。
- ps aufx, pstree -ap
- Wiresharkによるパケットのキャプチャ
- lsof -p <PID>によるプロセスの使用しているファイルの確認
- sudo strace -p <PID>でプロセスにアタッチして実行しているシステムコールの確認
- 再起動 -> 効果なし
- sudo apt remove zsh, sudo apt install zsh -> 効果なし
- htopによるリアルタイムのプロセスの変化
pstree
1 2init,1 ro 3 ├─init,3 ro 4 │ └─zsh,4 5 │ └─pstree,513 -ap 6 ├─zsh,333 7 │ └─(awk,337) 8 └─zsh,477 9 └─(awk,481) 10
ps
1USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 2name 333 100 0.0 21284 1052 tty1 RN 18:03 1:12 -zsh 3name 337 0.0 0.0 0 0 tty1 Z 18:03 0:00 \_ [awk] <defunct> 4name 477 98.7 0.0 21416 1068 tty1 RN 18:04 0:13 -zsh 5name 481 0.0 0.0 0 0 tty1 Z 18:04 0:00 \_ [awk] <defunct> 6
Wiresharkでは特に特定の相手との大量の通信をしたりなどは見られませんでした。
straceでは以下のシステムコールをひたすら繰り返していました。
SIGCHLD rt_sigprocmask rt_sigprocmask wait4 gettimeofday wait4 rt_sigreturn kill(pid, SIGCONT) rt_sigprocmask sigsuspend
lsofでは/usr/lib/x86_64-linux-gnu/zsh/5.4.2/zsh以下のフィアル(拡張子soの共有ライブラリ)を10個ほど、lib/x86_64-linux-gnu/以下のフィアルなどを開いていました。
htopではEnterキーを押しているだけでルートにzshが生えてくるのを確認しました。あとは静的優先度が15と他のプロセスの20より低く優先度が高いことがわかりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。