新Linux入門|killコマンドとkillallコマンドの使い方:プロセスにシグナルを送る

Linuxでは、実行中のプログラム(=プロセス)を制御したい場面がよくあります。
 「このプロセスを終了したい」「応答しなくなったプロセスを強制停止したい」…そんなときに登場するのが、
killコマンドkillallコマンド です⚙️

どちらも「プロセスにシグナル(signal)」を送るためのコマンドですが、
指定方法(PIDかプロセス名か) に違いがあります。
ここでは、この2つのコマンドをわかりやすく解説していきます✨

💥 killコマンドとは?

killコマンド は、指定したプロセスID(PID)に対して
シグナル(signal) を送信して動作を制御するコマンドです。
シグナルとは「終了して」「一時停止して」「再開して」などの指示を出す仕組みのこと。

プロセスを安全に停止したり、強制的に終了させたりするために利用します。

項目内容
コマンド名kill
主な目的プロセスにシグナルを送って制御する
対象の指定方法プロセスID(PID)を指定する
実行権限通常はrootまたは該当プロセスの所有者のみ

💡つまり「kill」という名前ですが、単に“終了”だけでなく
“再開”や“一時停止”などもシグナル次第でできるんです😉

🧩 killコマンドの書式

kill [オプション] [PID]

[root@AlmaLinux ~]# kill -9 1234

このコマンドは、PIDが1234のプロセスに対して
「強制終了(SIGKILL)」のシグナルを送ります💣

⚙️ 主なオプション

オプション説明
-l, --list利用可能なシグナルの一覧を表示する
-s シグナル名または番号送信するシグナルを指定する
-シグナル名または番号シグナルを簡易指定する(例:-9)

💡デフォルトでは SIGTERM(15) が送信され、
これは「通常の終了要求」です。

🧮 使用例と出力例

① 通常終了(SIGTERM)

[root@AlmaLinux ~]# kill 2451

→ PID 2451 のプロセスに終了要求(SIGTERM)を送ります。
プロセスが自分で後処理を行い、安全に終了します。

② 強制終了(SIGKILL)

[root@AlmaLinux ~]# kill -9 2451

→ プロセスが応答しないときに使いますが、
リソースが解放されずデータ損失の可能性もあるため、慎重に⚠️

③ 利用可能なシグナル一覧の表示

[suzuki@AlmaLinux ~]$ kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT   4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE    9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE  14) SIGALRM 15) SIGTERM
…(以下略)

シグナル名や番号をここで確認できます✨

🧩 killallコマンドとは?

一方、killallコマンド は「プロセス名」を指定して
該当するすべてのプロセスにシグナルを送信します。

項目内容
コマンド名killall
主な目的プロセス名を指定してシグナルを送る。
指定方法プロセス名(例:firefox、httpdなど)
主な用途同名の複数プロセスをまとめて終了する。

💡たとえば「firefox」が複数起動しているとき、
PIDをひとつずつ調べずにまとめて終了できるので便利です!

🔍 kill と killall の違い

比較項目killkillall
対象の指定方法プロセスID(PID)プロセス名
対象範囲特定の1プロセス同名プロセスをすべて
主な用途個別制御(精密)一括制御(便利)
kill -9 1234killall -9 firefox

💡 killallコマンドの書式と例

killall [オプション] [プロセス名]

① 通常終了(SIGTERM)

[root@AlmaLinux ~]# killall -SIGTERM firefox

→ firefox という名前のすべてのプロセスを終了要求します。

② 強制終了(SIGKILL)

[root@AlmaLinux ~]# killall -9 firefox

→ 応答しないFirefoxプロセスを一括で強制終了💥

③ 特定ユーザーのプロセスのみ終了

[root@AlmaLinux ~]# killall -u suzuki gedit

→ ユーザーsuzukiが起動しているgeditを終了します。

🧰 kill / killall の活用イメージ

状況使用コマンド
1つのプロセスを安全に終了killkill 2345
応答しないプロセスを即終了killkill -9 2345
同名プロセスをまとめて停止killallkillall firefox
特定ユーザーのプロセスを終了killall -ukillall -u suzuki gedit

🧠 注意ポイント

  • SIGTERM(15) は通常終了(安全に止まる)
  • SIGKILL(9) は強制終了(即停止・データ喪失のリスクあり)
  • killallは複数プロセスを止めるため、誤操作には注意!⚠️

🌈 まとめ

  • kill は PID を指定して個別にプロセスを制御。
  • killall は プロセス名 を指定して一括制御。
  • SIGTERM(15) は安全な終了、SIGKILL(9) は強制終了。

プロセス管理の基本中の基本ともいえるコマンドです💪
 ps や top コマンドと組み合わせて使えば、システム監視とトラブル対応がグッと効率的になります✨