12月 27 2007

pkill を使うようにした

Published by HoLY at 2:00:04 under tech

サーバ管理とかでの話。

FreeBSDやLinuxで、あるプロセス(例えばvim)を調べる/殺す際に、今までは

$ ps auxww | grep vim 

なんて process id を調べてから kill、なんてやってたんだけどいい加減やめようと思って意図してpkill, pgrep を使うようにする。

pgrep を使えば process id は

$ pgrep vim

で調べられる。もし引数も含めて調べるなら

$ pgrep -f tiarra

などする必要がある。(-f で引数まで含めてパターンマッチングする)

-l で出力する情報を少しだけ増やせる。

また、最後に起動した tiarra だけ調べたい、などという場合なんかは

$ pgrep -fn tiarra

とすればよい。-n で最後に起動したプロセスだけ抽出する。-o なら最初。

んで、pgrep で調べた後に かわりに pkill にすれば、kill の動作をしてくれる。 (いきなりpkill食らわせるのはまだ怖い)

ちなみに killall は solaris でアレなのでなるべく使わないようにしてる。

自分の環境は主に FreeBSD6 なので、ports で sysutils/pkill を入れて使用した。 Linux では最初から入ってることも多そう。(最近の事情はよく知らないけど)

あと似たコマンドで skill があって (sysutils/skill)、 interactive mode があったり、正規表現でプロセス名を指定できたりする。 またこっちには nice 相当の snice がある。

skill と pkill ではかなりオプションが違うので要注意。-v とかうっかり skill に使うとまずいことうけあい。どちらかをメインで使って残りはちゃんと man を引いて使う方がよさそう。

Trackback URI | Comments RSS

Leave a Reply