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。これが一番楽だ。
意外と知らないので便利。私も忘れていました(笑)。