概要
killallは、プロセスID(PID)の代わりにプロセス名で複数のプロセスを一度に終了できる強力なツールです。同じ名前のすべてのインスタンスを対象とするため、特定のアプリケーションのすべてのウィンドウやバックグラウンドサービスを終了する場合に特に便利です。
主な特徴
- プロセス名に基づく終了
- 多様なシグナル送信をサポート(デフォルトSIGTERM)
- ユーザー、時間など多様な条件でフィルタリング可能
- 複数のインスタンスを一度に処理
主なオプション
killallコマンドは、プロセスの終了方法と対象を細かく制御できる多様なオプションを提供します。
基本動作とシグナル
プロセスフィルタリング
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`killall` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
killallコマンドの様々な活用例です。
特定の名前のすべてのプロセスを終了
killall firefox
Firefoxウェブブラウザのすべてのインスタンスを終了します。デフォルトのシグナルであるSIGTERM(正常終了要求)を送信します。
特定のシグナルで強制終了
killall -s SIGKILL chrome
ChromeウェブブラウザのすべてのインスタンスをSIGKILL(強制終了)シグナルで終了します。このシグナルはプロセスがクリーンアップ作業を行う機会を与えないため、注意して使用する必要があります。
対話モードで終了
killall -i sshd
sshd(SSHデーモン)プロセスを終了する前に、各インスタンスについてユーザーに確認を求めます。「y」を入力すると終了します。
特定のユーザーのプロセスを終了
killall -u user1
ユーザー「user1」が実行中のすべてのプロセスを終了します。
プロセス終了待機
killall -w myapp
現在実行中の「myapp」プロセスが完全に終了するまでコマンドが待機します。
インストール
killallコマンドは、ほとんどのLinuxディストリビューションで「psmisc」パッケージの一部としてデフォルトでインストールされています。システムにインストールされていない場合は、次のコマンドを使用してインストールできます。
Debian/Ubuntu
sudo apt update && sudo apt install psmisc
APTパッケージマネージャーを使用してpsmiscパッケージをインストールします。
CentOS/RHEL/Fedora
sudo yum install psmisc
# または
sudo dnf install psmisc
YUMまたはDNFパッケージマネージャーを使用してpsmiscパッケージをインストールします。
ヒントと注意点
killallコマンドを使用する際の役立つヒントと注意すべき点です。
SIGKILL(-9)使用時の注意
SIGKILL(シグナル番号9)はプロセスを強制的に即時終了させ、プロセスが開いているファイルやデータなどを整理する機会を与えません。これはデータ損失やシステム不安定を招く可能性があるため、他のシグナル(例: SIGTERM)でまず試みて、失敗した場合にのみ最終手段として使用する必要があります。
- **まずSIGTERM(デフォルト)を使用**: ほとんどのアプリケーションはSIGTERMを受け取ると正常に終了します。
- **最終手段としてSIGKILLを使用**: プロセスが応答しない場合にのみ使用してください。
正確なプロセス名の確認
killallは正確なプロセス名を使用します。「ps aux | grep <プロセス名>」コマンドを使用して、終了したいプロセスの正確な名前を確認することをお勧めします。
- 例: 「ps aux | grep firefox」
killallとpkillの違い
「killall」は正確なプロセス名を基に動作するのに対し、「pkill」は正規表現を使用してプロセス名をマッチさせることができるため、より柔軟な検索と終了が可能です。
- 「killall」: 正確な名前マッチ(例: 「killall firefox」)
- 「pkill」: 正規表現マッチ(例: 「pkill -f 'firef[o]x'」)
- 「pkill」はPIDを直接指定しなくても、「kill」コマンドの機能を拡張します。
システムプロセスの終了に関する注意
システムの必須プロセスを「killall」で終了すると、システムが不安定になったりクラッシュしたりする可能性があります。特に「root」権限で実行する際はさらに注意が必要です。
- 例: 「killall systemd」、「killall init」などは絶対に実行しないでください。