killall - プロセス名を指定してプロセスを終了する
概要
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, --list
killall -V, --version
説明
killall は、指定されたコマンドを実行しているすべてのプロセスにシグナルを送信します。シグナル名が指定されていない場合、SIGTERM が送信されます。
シグナルは、名前 (例: -HUP または -SIGHUP) または番号 (例: -1) またはオプション -s で指定できます。
コマンド名が正規表現 (オプション -r) でなく、スラッシュ (/) を含む場合、その特定のファイルを実行しているプロセスが、その名に関係なく、終了対象として選択されます。
killall は、リストされた各コマンドに対して少なくとも 1 つのプロセスが終了した場合、またはコマンドがリストされていない場合で、-u および -Z 検索条件に一致するプロセスが少なくとも 1 つ存在する場合は、ゼロの戻りコードを返します。
それ以外の場合は、ゼロ以外の値を返します。
killall プロセスは、自身を終了することはありませんが、他の killall プロセスを終了する場合があります。
オプション
-e, --exact
非常に長い名前に対して完全一致を要求します。コマンド名が 15 文字を超える場合、完全な名前が利用できない場合があります (つまり、スワップアウトされています)。この場合、killall は最初の 15 文字に一致するものをすべて終了します。-e オプションを使用すると、そのようなエントリはスキップされます。-v オプションに加えて -e オプションが指定されている場合、killall はスキップされた各エントリについてメッセージを出力します。
-I, --ignore-case
プロセス名の大小文字を区別しない一致を実行します。
-g, --process-group
プロセスが属するプロセスグループを終了します。kill シグナルは、同じプロセスグループに属する複数のプロセスが見つかった場合でも、グループごとに 1 回だけ送信されます。
-i, --interactive
終了する前に確認を求めます。
-l, --list
すべての既知のシグナル名をリストします。
-n, --ns
指定された PID の PID 名前空間に対して一致させます。デフォルトでは、すべての名前空間に対して一致させます。
-o, --older-than
指定された時間よりも古い (開始時間が前の) プロセスに対してのみ一致させます。時間は、浮動小数点数と単位で指定されます。単位は、秒、分、時間、日、週、月、年の順に、s、m、h、d、w、M、y です。
-q, --quiet
プロセスが終了しなかった場合にメッセージを表示しません。
-r, --regexp
プロセス名のパターンを POSIX 拡張正規表現として解釈します (regex(3) を参照)。
-s, --signal, -SIGNAL
代わりにこのシグナルを送信します。
-u, --user
指定されたユーザーが所有するプロセスのみを終了します。コマンド名はオプションです。
-v, --verbose
シグナルが正常に送信されたかどうかを報告します。
-V, --version
バージョン情報を表示します。
-w, --wait
kill されたすべてのプロセスが終了するまで待ちます。 killall は、1 秒ごとに kill されたプロセスがまだ存在するかどうかを確認し、すべてが終了したときにのみ終了します。ただし、シグナルが無視された場合、またはプロセスがゾンビ状態のままである場合、killall は永久に待機する可能性があります。
-y, --younger-than
指定された時間より後に開始されたプロセスのみを対象とします。時間は、浮動小数点数と単位で指定します。単位は、秒、分、時間、日、週、月、年の順に、s、m、h、d、w、M、y です。
-Z, --context
セキュリティコンテキストを指定します。指定された拡張正規表現パターンと一致するセキュリティコンテキストを持つプロセスのみを kill します。コマンド名を含めることもできます。このオプションは、コマンドラインの他の引数の前に置く必要があります。
ファイル
/proc proc ファイルシステムの場所
既知のバグ
ファイルによる kill は、実行中にファイルが開いたままになっている実行ファイルでのみ機能します。つまり、不純な実行ファイルではこの方法で kill することはできません。
killall 名前 と入力しても、特に特権ユーザーの場合、Linux 以外のシステムでは期待どおりの効果が得られない可能性があることに注意してください。
killall -w は、スキャン間隔中にプロセスが消失し、同じ PID を持つ新しいプロセスに置き換えられた場合、それを検出しません。
プロセスが名前を変更すると、killall は正しく一致できない場合があります。
killall は、コマンドラインで指定できる名前の数に制限があります。この制限は、符号なし long 型の整数に 8 を掛けた値です。ほとんどの 32 ビットシステムでは制限は 32 であり、同様に 64 ビットシステムでは通常 64 です。
関連項目
kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2), regex(3).