綾小路龍之介の素人思考

[linux] pgrepとpkillでプロセスをフィルタリングして一括kill

まとめてプロセスをkillするpkill、プロセスのフィルタリングを確認できるpgrep。これらをうまく使うことで、あわてずkill。

killしたいプロセスが複数個あって、これらを迅速にkillしたい。まずはpgrepでプロセスのフィルタリングを行う。-lはマッチしたプロセスを表示するので、確認に便利。-fはコマンドライン全体にマッチさせる。マッチは正規表現が使える。例えば、以下のような場合、

$ pgrep -lf 'hoge'
2112 /usr/bin/time xargs -a argv.txt -n2 -0 -P32 -r /************************/hoge
2113 xargs -a argv.txt -n2 -0 -P32 -r /************************/hoge
2114 /************************/hoge ******** 0x53-0x39/0x20.txt
2115 /************************/hoge ******** 0x53-0x39/0x21.txt
2116 /************************/hoge ******** 0x53-0x39/0x22.txt
2117 /************************/hoge ******** 0x53-0x39/0x23.txt
2118 /************************/hoge ******** 0x53-0x39/0x24.txt
2119 /************************/hoge ******** 0x53-0x39/0x25.txt
2120 /************************/hoge ******** 0x53-0x39/0x26.txt
2121 /************************/hoge ******** 0x53-0x39/0x27.txt
2122 /************************/hoge ******** 0x53-0x39/0x28.txt
2123 /************************/hoge ******** 0x53-0x39/0x29.txt
2124 /************************/hoge ******** 0x53-0x39/0x2A.txt
2125 /************************/hoge ******** 0x53-0x39/0x2B.txt
2126 /************************/hoge ******** 0x53-0x39/0x2C.txt
2127 /************************/hoge ******** 0x53-0x39/0x2D.txt
2128 /************************/hoge ******** 0x53-0x39/0x2E.txt
2129 /************************/hoge ******** 0x53-0x39/0x2F.txt
2130 /************************/hoge ******** 0x53-0x39/0x30.txt
2131 /************************/hoge ******** 0x53-0x39/0x31.txt
2132 /************************/hoge ******** 0x53-0x39/0x32.txt
2133 /************************/hoge ******** 0x53-0x39/0x33.txt
2134 /************************/hoge ******** 0x53-0x39/0x34.txt
2135 /************************/hoge ******** 0x53-0x39/0x35.txt
2136 /************************/hoge ******** 0x53-0x39/0x36.txt
2137 /************************/hoge ******** 0x53-0x39/0x37.txt
2138 /************************/hoge ******** 0x53-0x39/0x38.txt
2139 /************************/hoge ******** 0x53-0x39/0x39.txt
2140 /************************/hoge ******** 0x53-0x39/0x3A.txt
2141 /************************/hoge ******** 0x53-0x39/0x3B.txt
2142 /************************/hoge ******** 0x53-0x39/0x3C.txt
2143 /************************/hoge ******** 0x53-0x39/0x3D.txt
2144 /************************/hoge ******** 0x53-0x39/0x3E.txt
2145 /************************/hoge ******** 0x53-0x39/0x3F.txt

正規表現が使えるので、マッチしたプロセスのうち、一部だけをフィルタすることも出来る。

$ pgrep -lf 'hoge.{,}(2[2-5,B-D]|3[7-8])\.txt$'
2116 /************************/hoge ******** 0x53-0x39/0x22.txt
2117 /************************/hoge ******** 0x53-0x39/0x23.txt
2118 /************************/hoge ******** 0x53-0x39/0x24.txt
2119 /************************/hoge ******** 0x53-0x39/0x25.txt
2125 /************************/hoge ******** 0x53-0x39/0x2B.txt
2126 /************************/hoge ******** 0x53-0x39/0x2C.txt
2127 /************************/hoge ******** 0x53-0x39/0x2D.txt
2137 /************************/hoge ******** 0x53-0x39/0x37.txt
2138 /************************/hoge ******** 0x53-0x39/0x38.txt

フィルタリングの結果を確認したら、pkillで実際にkillする。

$ pkill -f 'hoge.{,}(2[2-5,B-D]|3[7-8])\.txt$'

リファレンス

  1. Man page of PGREP
  2. Linux コマンド 勉強中 - pgrep プロセス名、プロセスの属性を指定してプロセス情報を取得する。
  3. pgrep, pkill を使用してプロセスを殺す - 技術メモ帳
  4. Linux コマンド 勉強中 - pkill プロセス名、プロセスの属性を指定してシグナルを送信する・プロセスを停止する
  5. pgrep / pkill コマンド: みズとおかズ

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2010-05-06T22:49:47+09:00
  2. Modified: 2010-05-06T22:49:47+09:00
  3. Generated: 2017-04-13T23:10:21+09:00