Linuxで複数の同じプロセスが動いていて、それらをまとめて終了したいと思ったことはありませんか?
そんなときに役立つのが「killall」コマンドです。
本記事では、killall
コマンドの基本的な使い方から、オプションによる応用、使用時の注意点までをわかりやすく解説します。Linux初心者の方でもすぐに実践できる内容です。
ぜひこの機会に、プロセス管理のスキルを一歩アップさせましょう!
killallコマンドとは?
killall
は、Linuxで実行中のプロセスをプロセス名で指定して一括終了するためのコマンドです。
通常のkill
コマンドでは、PID(プロセスID)を指定して終了させますが、killall
ではプロセス名を指定するだけで、該当するすべてのプロセスを終了できます。
たとえば、以下のように使います:
bashコピーする編集するkillall firefox
このコマンドは、実行中のすべてのfirefox
プロセスを一括で終了します。
killとの違い
kill
とkillall
は混同されがちですが、大きな違いは指定方法です。
コマンド | 指定方法 | 使い方の例 |
---|---|---|
kill | PID指定 | kill 12345 |
killall | プロセス名 | killall firefox |
kill
は精密に単体プロセスを終了させる場合に適していますが、killall
は複数プロセスをまとめて終了したいときに便利です。
基本的な使い方
以下に基本的な使い方を紹介します。
例:すべての「gedit」プロセスを終了する
killall gedit
このコマンドで、現在実行中のgedit
エディタをすべて終了します。
なお、ユーザーの権限によっては、sudoをつける必要があります。
bashコピーする編集するsudo killall apache2
よく使うオプション一覧とその使い方
killall
はオプションを組み合わせることで、より細かく制御できます。以下によく使われるオプションを紹介します。
-i:確認プロンプトを表示
killall -i gedit
このオプションを使うと、終了させる前に「終了していいかどうか」を確認されます。誤操作防止におすすめです。
-v:実行結果を表示
killall -v gedit
どのプロセスを終了したかを表示します。スクリプトでログを取りたいときに便利です。
-u:ユーザー指定
killall -u ユーザー名 プロセス名
特定ユーザーが起動したプロセスのみ終了します。
例:
killall -u john firefox
ユーザー「john」が起動したfirefox
のみを終了します。
-q:メッセージ非表示(quiet)
killall -q プロセス名
終了メッセージを表示させずに実行できます。スクリプト向け。
シグナルの指定方法
killall
は、kill
コマンドと同様にシグナルを指定できます。たとえば、TERM
(終了)やKILL
(強制終了)などです。
例:TERM(通常の終了)
killall -s TERM firefox
例:KILL(強制終了)
killall -s KILL firefox
KILL
は即時強制終了させるシグナルなので、どうしても終了しないプロセスに使います。ただし、保存されていないデータが失われる可能性があるため注意が必要です。
実行前にプロセスを確認するには?
誤って重要なプロセスを終了しないよう、事前に確認することが大切です。
pgrepと組み合わせる方法
pgrep -l プロセス名
例:
pgrep -l apache2
このコマンドで、apache2
に該当するプロセスIDと名前を一覧で確認できます。
または、ps
コマンドを使っても確認可能です。
ps aux | grep プロセス名
注意点とトラブル防止のポイント
killall
は便利ですが、使い方を間違えると大変なトラブルにつながることもあります。以下のポイントに注意しましょう。
1. 類似プロセスに注意
プロセス名が部分一致ではなく完全一致しますが、似た名前のプロセスがあると混乱の元になります。事前にプロセス名を正確に確認しましょう。
2. sudo権限が必要なケース
システムレベルのプロセス(例:nginx, apache2など)を終了するには、sudo
をつける必要があります。
sudo killall nginx
3. データ保存を忘れずに!
GUIアプリケーションをkillall
で終了させると、保存していない作業が失われる可能性があります。あらかじめ保存をしてから終了するようにしましょう。
killallが使えない場合の対処法
環境によっては、killall
コマンドが使えない(インストールされていない)場合もあります。
1. インストールされていない場合
以下のコマンドでインストールできます。
Debian/Ubuntu系:
sudo apt install psmisc
RedHat/CentOS系:
sudo yum install psmisc
2. 代替としてkill + pgrepの組み合わせ
kill $(pgrep firefox)
この方法でも同じ効果が得られます。ただし、プロセス数が多いときはkillall
の方がスマートです。
まとめ:killallで効率的なプロセス管理を
killall
コマンドは、複数の同名プロセスを簡単に終了できる非常に便利なツールです。
特に、GUIアプリケーションやバックグラウンドプロセスが複数立ち上がっているときに、効率的な終了操作が可能になります。
とはいえ、強力なコマンドであるからこそ、誤操作は大きなリスクにもなりかねません。-i
オプションでの確認や、事前のプロセス確認を習慣にすることで、安全に活用できます。
Linuxのプロセス管理において、killall
を正しく使いこなせば、日々の作業効率が大幅にアップすることでしょう。
ぜひ、この記事を参考に試してみてください!