pgrepとpkillで簡単プロセス操作
ps aux|gpre javaとかやってたら友達にもっといい方法があるよと教えてもらった。pgrepとpkill。
$ pgrep -l db
2292
3050
3051
pgrep [プロセス名]でマッチするプロセスIDの一覧が返ってくる。プロセス名をつけたい場合は-lオプションをつける。
$ pgrep -l db
2292 dbus-daemon
3050 dbus-launch
3051 dbus-daemon
psと違って自分自身は一覧に表示されないらしいので、なんかバッチとか作るときは重宝しそう。でも、どんなプロセスが上がってるか見たいときは相変わらずpx aux|grep 〜が便利。
ただ、pkillはもっと使いどころがありそう。下の例はxtermを3つあげてる状態でpgrepしたところ。
$ pgrep -l xterm
8124 xterm
8141 xterm
8158 xterm
複数上がってるプロセスをpkillを使うとまとめてkillできる。
$ pkill xterm
[1] Exit 15 xterm
[2]- Exit 15 xterm
[3]+ Exit 15 xterm