はじめに
複数killの方法は3通りある。
- pkillを使う
- pgrep + xargsを使う
- ps + awk + xargsを使う
pgrep
killする前に、pgrepでプロセスを確かめる。
$ pgrep プロセス名
2151
2152
3884
プロセス名ではなく、コマンドラインに対して検索したければ、-fを付ける。
$ pgrep -f コマンドライン名
2151
2152
2884
3884
プロセス名を表示したい場合は、-lを付ける。
$ pgrep -l プロセス名
3884 マッチしたプロセス名
あるいはpsで確かめる。
ps -ef | grep hoge
pkill
pgrepで削除したい対象が確認できたら、pgrepをpkillに変えて実行。
$ pkill -9 プロセス名
pgrep + xargs
pgrepをpkillに書きなおすのではなく、xargsを使って、pgrepの結果をkillに渡してあげてもOK。
$ pgrep プロセス名 | xargs kill -9
ps + xargs
はじめにpgrepでプロセス確認せず、psで確認していれば、psにawkとxargsを組み合わせてもOK。
ps -ef | grep hoge | grep -v grep | awk '{print $2}' | xargs kill -9