killall - 名前を使ってプロセスを kill します
killall [-Z,
--context pattern] [-e,
--exact] [-g,
--process-group] [-i,
--interactive] [-n, --ns
PID] [-o, --older-than
TIME] [-q, --quiet]
[-r, --regexp]
[-s, --signal SIGNAL,
-SIGNAL] [-u,
--user user] [-v,
--verbose] [-w, --wait]
[-y, --younger-than TIME]
[-I, --ignore-case]
[-V, --version] [--]
name ...
killall -l
killall -V,
--version
killall は、指定したコマンドが実行されているプロセスすべてに対して、1 つのシグナルを送信します。 シグナル名が指定されなかった場合は SIGTERM が送信されます。
シグナルは名前によって指定することができます (たとえば -HUP や -SIGHUP)。 また番号 (たとえば -1) やオプション -s を用いて指定することもできます。
コマンド名が (オプション -r を用いた) 正規表現ではなく、スラッシュ (/) を含んでいる場合は、 そのファイルを実行しているプロセスが kill の対象となるのであって、 ファイル名は関係ありません。
各コマンドの指定により kill されたプロセスが 1 つでもあれば killall はゼロを返します。 またコマンドの指定がなく、-u と -Z の検索基準にマッチするプロセスが 1 つでもあればゼロを返します。 それ以外の場合、killall はゼロ以外を返します。
killall が自身のプロセスを kill することはありません (別の killall プロセスであれば kill します)。
長い名前であっても、完全に一致することを求めます。 コマンド名が 15 文字以上あった場合、完全なコマンド名称が (スワップアウトされてしまっているなどして) わからない場合があります。 そういったときのために killall では、最初の 15 文字だけ一致すれば、それをすべて kill するようにしています。 この -e を用いた場合、15 文字しか一致していないものは処理スキップされます。 killall において -v と -e が指定されていた場合、スキップしたものはメッセージ表示されます。
プロセス名の一致にあたって、大文字小文字を区別しません。
そのプロセスが属しているプロセスグループを kill します。 kill のためのシグナルは、グループに対して 1 度しか送信されません。 つまり複数のプロセスが同一のプロセスグループに属していたとしても、シグナル送信は 1 度だけです。
kill する前に対話的に確認を求めます。
使用できる signal をすべて一覧表示します。
指定された PID の PID 名前空間との照合を行います。 デフォルトでは、全名前空間と照合します。
指定された時刻よりも古い (先に起動された) プロセスのみに一致します。 時刻は実数値に単位をつけて指定します。 単位に用いる s, m, h, d, w, M, y は、 秒、分、時間、日、週、月、年をそれぞれ表します。
kill するプロセスがなかった場合でも表示を行いません。
プロセス名のパターンを、regex(3) に従った POSIX 拡張正規表現として解釈します。
SIGTERM 以外のシグナルを送信します。
指定されたユーザーが所有するプロセスのみ kill します。 コマンド名を指定するかどうかは任意です。
シグナルが正常に送信されたかどうかを表示します。
バージョン情報を表示します。
kill されたプロセスがすべて終了するのを待ちます。 killall は、kill を行ったプロセスがまだ残っていないかどうかを、1 秒ごとに確認して、 1 つでも残っていれば返ってきません。 シグナルが無視される、効果がなかった、プロセスがゾンビ状態になった、という場合には、 killall が永久に待ち続けることもあります。
指定された時刻よりも若い (後で起動された) プロセスのみに一致します。 時刻は実数値に単位をつけて指定します。 単位に用いる s, m, h, d, w, M, y は、 それぞれ秒、分、時間、日、週、月、年を表します。
セキュリティコンテキストを指定します。 拡張正規表現によるパターンを用いて、これに一致するプロセスのみを kill します。 この指定は、 コマンドライン上において、 どの引数よりも前に指定しなければなりません。 コマンド名の指定は任意です。
proc ファイルシステムがあるディレクトリ。
ファイルの kill 処理は、 処理中にオープンし続けている実行ファイルに対してのみ作用します。 つまり不順 (impure) な実行ファイルは、 この方法では kill されません。
Linux 以外のシステムでは、 killall name を入力しても、 期待する動作にはならないことがある点に注意してください。 特権ユーザーが行う場合には、特に注意してください。
killall -w は、 スキャンを行っている際に、 1 つのプロセスが消失し、 同一 PID を使った新たな別プロセスが出現した場合には、 これを検出することはできません。
プロセスの名前が変更されると、 killall が正しく認識できなくなる場合があります。
killall では、 コマンドラインから指定できる名称の数に制限があります。 この数は unsigned long integer のサイズの 8 倍の数です。 この制限値は 32 ビットシステムでは、ほとんどが 32 となり、 同様に 64 ビットシステムでは通常 64 となります。
kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2), regex(3).