最初に、Unixライクなシステムのシグナルとは何かを知る必要があります(数分で完了します)。
シグナルは、重要なイベントが発生したことを示すために(実行中の)プログラムに送信されるソフトウェア割り込みです。
イベントは、ユーザー要求から不正なメモリアクセスエラーまでさまざまです。割り込み信号などの一部の信号は、ユーザーがプログラムに通常の制御の流れにない何かをするように要求したことを示しています。
使用できるシグナルにはいくつかのタイプがあります。すべての使用可能な/可能なシグナルの完全なリストを取得するには、「$ kill -l」コマンドを使用します。
上記の出力では、各シグナルに「シグナル番号」(例:1、2、3)と「シグナル名」(例:SIGUP、SIGINT、SIGQUIT)が関連付けられていることがはっきりとわかります。各信号の機能の詳細については、こちらのリンクをご覧ください。
最後に、「kill -9コマンドでなぜ9番なのか」という質問に行きます。
プログラムまたはスクリプトに信号を配信する方法はいくつかあります。シグナルを送信するために一般的に使用される方法の1つは、killコマンドを使用することです。基本的な構文は次のとおりです。
$ kill -signal pid
ここで、signalはシグナルの番号または名前のいずれかであり、その後にシグナルの送信先のプロセスID(pid)が続きます。
たとえば--SIGKILL(または-9)の場合、signalはプロセスをすぐに強制終了します。
$ kill -SIGKILL 1001
そして
$ kill -9 1001
どちらのコマンドも同じものです。つまり、上記では「シグナル名」を使用し、後で「シグナル番号」を使用しています。
判定:killコマンドで「シグナル名」と「シグナル番号」のどちらを使用するかを選択する自由があります。