Linuxコマンド辞典 killコマンド(プロセス管理)

プロセスを終了する「kill」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

プロセスにシグナルを送ります。送信するシグナルを何も指定しない場合は、SIGTERM(値は15)を送ります。SIGTERMはプロセスを終了させるシグナルです。プロセスIDは「0」を指定するとすべてのプロセスにシグナルを送ります。「-1」を指定すると1より大きいプロセスIDを持つすべてのプロセスにシグナルを送ります(プロセスIDが1になるのはinitだけです)。「-数値」で数値を指定するとプロセスグループのプロセスにシグナルを送ります。プロセスIDの代わりにプロセス名を指定することもできます。コマンド名を指定すると、該当するすべてのプロセスにシグナルを送ることができます。

※PIDの代わりに「%ジョブ番号」のようにジョブ番号を指定することもできます。

書式

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

オプション

-s シグナルプロセスに送るシグナルを指定する
-l [シグナル]シグナルを一覧表示する。シグナル名を指定した場合は、シグナルIDを表示する。

主なシグナル

シグナル番号シグナル名説明
HUP(SIGHUP)ハングアップ(端末が制御不能もしくは切断による終了)
INT(SIGINT)キーボードからの割り込み(CTRL+C)
KILL(SIGKILL)強制終了
15TERM(SIGTERM)終了(デフォルト)
18CONT(SIGCONT)停止しているプロセスの再開
19STOP(SIGSTOP)一時停止(ctrl+Z)

※HUPシグナルを受け取ったプロセスは再起動するので、設定の再読込に使われます。

シグナル一覧を表示する

$ kill -l

実行結果

[suna@localhost ~]$ 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
16) SIGSTKFLT   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
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX 

シグナル名/シグナルIDを指定して、シグナルID/シグナル名を表示する

$ kill -l シグナル名 
$ kill -l シグナルID

実行結果

[suna@localhost ~]$ kill -l SIGTERM
15
[suna@localhost ~]$ kill -l 15
TERM
[suna@localhost ~]$ 

プロセスにシグナルを送って終了させる。

$ kill プロセスID

実行結果

[root@localhost ~]# kill 834420
[root@localhost ~]# 

プロセスを強勢終了させる

killコマンドを実行しても終了できない場合は、より強力なシグナルを送り強制的に終了させます。

$ kill -9 プロセスID
$ kill -kill プロセスID
$ kill -SIGKILL プロセスID

実行結果

[root@localhost ~]# kill -9 834420
[root@localhost ~]# 

プロセスをハングアップさせる

実行中または待機中のプロセスをハングアップさせたい時などあります。たとえば、すでに起動しているプログラムに新たに設定ファイルを反映させたい場合など。ハングアップシグナルを送るとデーモンがプログラムを再起動させます。

$ kill -1 プロセスID
$ kill -SIGHUP プロセスID
$ kill -HUP プロセスID

実行結果

[root@localhost ~]# kill -1 834420
[root@localhost ~]#