kill - プロセスの終了


kill コマンドでプロセスを終了させることができます。 まず ps コマンドを実行して PID (Process ID)を確認します。 そして、

% kill [PID]

のようにプロセスIDを指定すればそのプロセスを終了させることができます。

強制終了

もう一度確認してそれでも終了されていない場合は

% kill -9 [PID]

のように -9 オプションを指定して、強制的に kill させることができます。

ジョブ番号の指定

ジョブ番号を指定することもできます。まず jobs コマンドでジョブ番号をしらべます。

% jobs
[1]  + Suspended (tty output)        mnews

ジョブ番号 1 番ですので、

% kill %1

のように指定します % を番号の頭につけて指定します。この場合もオプションは変わりません。

シグナルの送信

% kill -[シグナル名] [PID]

などのようにしてプロセスに対しシグナルを送信することができます。シグナル番号で送信することもできます。

% kill -[シグナル番号] [PID]

例えば kill -KILL [PID] や kill -9 [PID] のようにします。

シグナルの一覧は

% kill -l

で表示することができます。シグナルの種類は OS によって多少異なります。

HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 
CLD PWR WINCH URG POLL STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ WAITING 
LWP FREEZE THAW CANCEL LOST RTMIN RTMIN+1 RTMIN+2 RTMIN+3 RTMAX-3 RTMAX-2 
RTMAX-1 RTMAX

代表的なシグナル

番号シグナル名解説
1HUP端末との接続が切断された(Hangup)ことによるプロセスの終了
2INT中断(インタラプト)。コマンドラインで C-c すると送られるシグナル。
3QUIT端末からの終了命令(Ctrl+\キーと同じ)
4ILL不正な命令(Illegal Instruction)によるプロセスの中止
5TRAPトレース(Trace),ブレーク・ポイント・トラップ(breakpoint trap)によるプロセスの終了
6ABRTプロセスの異常終了
7EMT(不明)
8FPE浮動少数点例外(Floating Point Exception)によるプロセスの終了
9KILLプロセスの強制終了
10BUSメモリオブジェクトが未定義の場所へのアクセスしたことによるプロセスの終了
11SEGV無効なメモリ参照
12SYS誤りのシステムコール
13PIPEパイプ(Pipe)破壊によるプロセスの終了
14ALRMalerm関数によるプロセスの終了
15TERM正常な終了動作を行わせて安全に終了。killのデフォルト。
23STOPプロセスを中断させる。CONT で再開できる。C-z のサスペンドと同じ。
25CONTSTOPで中断したプロセスを再開させる。

なお、シグナルを省略したときに送られるシグナルは TERM です。


xrea