【Linux】実行中のプロセス(プログラム)にシグナルを送信する:kill

Linux

どーも!marusukeです!

実行中のプロセスにシグナルを送信するコマンドkillについてです!


killコマンドでできること

kill [オプション] プロセスID(PID)

killコマンドは、実行中のプロセス(プログラム)に対してシグナルを送信するためのLinuxコマンドです
多くの人が「プロセスを強制終了するコマンド」と認識していますが、正確には終了以外の指示(再読み込み、一時停止など)も送ることが可能です

Linuxでは、アプリケーションやサービスはすべて「プロセス」として動作しており、それぞれにPID(プロセスID)が割り当てられています
killはそのPIDを指定して、OS経由で命令を送ります

例えば、

  • フリーズしたアプリを終了したい
  • サーバープロセスを再起動せずに設定を再読み込みしたい
  • バックグラウンドで動いている不要な処理を止めたい

といった場面でよく使われます

似ているコマンド

ちなみに同じようなコマンドにpkillkillallがあり、プロセス名を指定してシグナルを送信します。killコマンドはPIDを指定します

用語解説:シグナル

シグナルとは、Linuxがプロセスに送る通知や命令のことです。「終了してください」「一時停止してください」などの意味を持ちます。番号や名前で指定でき、プロセスの動作を制御します


killコマンドの使用例

$ ps aux | grep sleep
user   12345  0.0  0.0   2600   600 pts/0    S    10:00   0:00 sleep 1000

$ kill 12345

$ ps aux | grep sleep
(何も表示されない)

上記の例では、sleep 1000という実行中のプロセスを確認し、
kill 12345でPID 12345のプロセスに終了シグナル(SIGTERM)を送っています

特にオプションを指定しない場合、killSIGTERM(15)を送信します
これは「できれば安全に終了してください」という穏やかな終了要求
です

プロセスID(PID)の調べ方

psコマンドで調べることができます

詳しくは以下の記事をご覧ください


killコマンドのオプション

オプションシグナル名説明
-15SIGTERMデフォルト。安全に終了するよう要求
-9SIGKILL強制終了(最後の手段)
-1SIGHUP設定ファイルの再読み込み
-2SIGINTCtrl+Cと同じ動作
-l利用可能なシグナル一覧を表示

よく使われる例

kill -9 12345

-9(SIGKILL)は即座に強制終了します
注意:プロセスは後処理を行えないため、データが破損する可能性があります

kill -l

利用可能なシグナル一覧を確認できます。
シグナルの理解が深まるため、初心者にもおすすめです


まとめ

  • killプロセスにシグナルを送るコマンド
  • 通常は kill PID(SIGTERM)で安全に終了
  • どうしても止まらない場合のみ kill -9
  • Linux運用・トラブル対応で必須の基本コマンド

Linuxを使いこなす第一歩として、ぜひpsコマンドと合わせて練習してみてください

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました