killall キルオール

英語表記killall

日本語表記名前指定シグナル送信

正式名称killall

危険度注意

What does it mean?

名前に一致する複数プロセスへ一括でシグナルを送ります。対象が広がりやすいため、killよりも慎重な確認が必要です。

Command Quest

killall を今日の道具にする

名前に一致する複数プロセスへ一括でシグナルを送ります。対象が...

$ killall [オプション]... 名前...
関連用語0
次のコマンド0
FAQ2
参照2

概要

名前に一致する複数プロセスへ一括でシグナルを送ります。対象が広がりやすいため、killよりも慎重な確認が必要です。

基本構文

killall [オプション]... 名前...

詳細解説

killallは、指定した名前に一致するプロセスへ一括でシグナルを送るコマンドです。PIDを個別指定するkillより入力は短くなりますが、その分だけ意図しない対象まで含めやすい特徴があります。

実務では、同名ワーカー群をまとめて停止する、再起動前に一括終了する、といった場面で役立つことがあります。しかし、本番環境では本当にその名前の全プロセスを止めてよいのかを慎重に確認すべきです。

さらに注意すべきなのは、killallはUNIX系OSごとに意味が大きく異なることがある点です。Linux前提を明示して使うべきコマンドです。

このコマンドを使う場面

同名ワーカー群の一括停止、保守前のまとめて終了、確認付きの一括シグナル送信に使います。

まず安全に試す方法

1. sleep 300 &
2. sleep 300 &
3. pgrep -a sleep
4. killall -i sleep

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 複数のsleepを起動し、killall -iで確認付き終了を試します。

オプション

  • -s シグナル
    送るシグナルを指定します。
    killall -s HUP nginx
  • -i
    確認しながら送ります。
    killall -i sleep
  • -u ユーザー
    指定ユーザーのプロセスに絞ります。
    killall -u appuser worker
  • -r
    名前を拡張正規表現として解釈します。
    killall -r "python.*"
  • -e
    長い名前でも完全一致を要求します。
    killall -e processname

実行結果サンプル

  • sleep 300 & sleep 300 & killall -i sleep
    Kill sleep(12345) ?
    Kill sleep(12346) ?

戻り値コード

  • 0 正常終了。対象へシグナル送信できました。
  • 1 一致するプロセスが見つからない、または送信できませんでした。
  • >1 不正な条件指定などで処理できませんでした。

使用例

  • killall nginx
  • killall -s HUP nginx
  • killall -i sleep
  • killall -u appuser worker

よくあるエラー

  • 止めたくない同名プロセスまで止まった
    原因: 名前一致で広く対象化しました。
    対処: 事前にpgrep -aで確認し、必要なら-uや-iで絞ります。
  • 別OSで全く違う意味だった
    原因: killallはOSごとに意味差が大きいコマンドです。
    対処: Linux前提を明示し、移植性が必要ならkillやpkillを検討します。

導入・互換性情報

Linuxのpsmisc版killallと、他のUNIX系OSのkillallは意味が大きく異なることがあります。移植性が必要な手順書では安易に使わず、Linux前提であることを明示するのが安全です。

注意点 / セキュリティリスク

危険度は中程度です。名前一致で広く作用するため、同名の複数プロセスや想定外の派生プロセスまで止める恐れがあります。

FAQ

  • Q. killallとpkillは何が違いますか。
    A. どちらも名前条件で送信できますが、pkillは条件指定が柔軟で、killallは名前指定の一括送信として使われることが多いです。
  • Q. 本番で使ってよいですか。
    A. 慎重に対象確認したうえで使うべきです。PID個別指定のほうが安全な場面も多いです。

参照リンク

関連記事