Linuxで複数のプロセスをkillする便利な方法
最近、殆どブログを更新していなかった。
理由は様々だが、何はともあれ何か書いておこう。
実は最近の仕事は、全くプログラムを書かない仕事・・・(T_T)。
Linuxでアプリを動かしてCPUの負荷状況を調べたりしている。
CPUの負荷を調べるのに有名なコマンドにsarコマンドがある。
今回は残念ながら、その使い方を紹介するのではなく、バックグラウンドで動作させた複数のsarコマンドをkillする方法をメモしておく。
例えば、次のようにして複数のsarをバックグラウンドで実行したとする。
$sar -b 2 50000 > logB.txt & $sar -d 2 50000 > logD.txt & $sar -r 2 50000 > logR.txt &
この場合2秒毎に50000回CPUの使用状況を取得するのだが、50000回取得する前にsarのプロセスをkillしたい場合はどうするか。
1つは次のようにする。
$ps -e $kill SIGKILL sar -bのプロセス番号 $kill SIGKILL sar -dのプロセス番号 $kill SIGKILL sar -rのプロセス番号
でも、これは面倒だ。そこで便利なコマンドがpgrepだ。
pgrepを使用すると次のように1行でkillできる。
$ pgrep -f 'sar' | xargs kill
これは便利!。
これでもかなり楽だが、pkillというコマンドもある。
$ pkill -f 'sar'
これでもOK。これが一番楽だ。
意外と知らないので便利。私も忘れていました(笑)。