Unixで特定のプロセスだけを監視する
目的
- 特定のプロセスだけの状態を確認したかった。全部とか、特定のユーザーだけなら、
htop
やtop
コマンドでみるのがインタラクティブでよい。ただ、これでは特定のプロセスだけに絞り込んでみれない(出来るなら教えてください......)。
やり方
watch --interval=0.5 ps auxw | grep -w ${process_name}
ってやると、process_nameだけの状態が0.5秒おきに更新されてわかる。watch --interval=0.5 ps auxw | grep -w pythonとかやれば、pythonだけがわかる。便利。
watch
コマンドは、ファイルとかの更新を自動で検知してくれて表示してくれるやつ。Macにはもともと入ってなくて、brew install watch
した。
結果
以下がwatchコマンドの様子。並列処理を書いていて、立ち上げたwokerプロセスがちゃんとCPUを使っているかどうかとか、そういうのの確認をしたくて調べていた。
便利なので、ターミナルに一つウィンドウを立ち上て、これだけ表示して使っている。