8.2. プロセスにシグナルを送る 【kill】

$ kill [オプション] プロセスID

プロセスを停止するには kill というコマンドを使用します。

プロセスID とは、各プロセスに付与される固有の識別番号です。ps コマンドによって表示される PID がこれにあたります。

代表的なオプションを以下に示します。

表 8-3. kill コマンドのオプション

-lシグナルの一覧表を表示します。
-シグナル番号シグナル(信号)を番号で指定して実行します。

シグナル番号の一覧を表示します。

$ 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     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
30) SIGPWR

kill コマンドを使用する最も一般的な理由は、何らかの原因で終了することができなくなったプロセスを強制的に終了するためです。

例えば、プロセス ID が 555 のプロセスを停止します。シグナル番号を省略して kill コマンドを実行した場合は、15) SIGTERM が送信されます。

$ kill 555

しかし、15) SIGTERM でプロセスを終了できなかった場合は、1) SIGHUP を送信します。

$ kill -1 555

それでも、プロセスが終了しない場合には、プロセスを強制的に終了させる、9) SIGKILL を送信します。

$ kill -9 555

しかし、9) SIGKILL でプロセスを停止した場合、そのプロセスの子プロセスが残ってしまう可能性があります。このように、親プロセスが存在しない子プロセスはゾンビプロセスと呼ばれ、KILL シグナルを送信してもプロセスを停止することができない場合があります。

注意

kill コマンドを実行するには、停止するプロセスの所有者かスーパーユーザーである必要があります。