Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

kill

プロセスにシグナルを送信する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
kill [-[s ] signal] PID ...
kill -l [signal]

 killコマンドは、PIDで指定したプロセスIDのプロセスにシグナルを送信します。主に、プロセスの終了または強制終了を行いたい時に使用します。

プロセスとプロセスID

 プロセスとは、UNIX上でプログラムを実行すると生成される、プログラムの実行管理単位です。たとえ同じプログラムを動かしたとしても、それぞれ別のプロセスとして生成されます。そして、カーネルはこのプロセスの管理のために、それぞれのプロセスに一意な番号を割りあて、それをプロセスIDといいます

オプション
① -s signal

「signal」で指定したシグナルを、PIDで指定したプロセスIDのプロセスに送信します。送信できるシグナルには、いくつかの種類があります(次表参照)。このオプションを省略した場合は、「SIGTERM」が指定されたものとして処理されます。

 「-s 9」、「-s SIGKILL」、「-s KILL」のように指定するのと、「-9」、「-SIGKILL」、「- KILL」のように指定するのは同意です。

② -l signal

「signal」に指定したシグナルの、シグナル番号またはシグナル名を表示します。

 「signal」を省略した場合には、シグナル名およびシグナル番号の一覧を表示します。

主要なシグナル一覧
シグナル名シグナル番号呼称内容
SIGHUP1ハングアップシグナル端末がハングアップした時に送られるシグナルです。主としてデーモンの再実行に使用します
HUP
SIGINT2割り込みシグナル割り込みキー([Ctrl]+[C]キー)が押された時に送られるシグナルです。プロセスに割り込みを入れる時に使用します
INT
SIGKILL9強制終了シグナル強制的にプロセスを終了させます。ただしゾンビプロセスは終了することができません
KILL
SIGTERM15終了シグナルプロセスに終了を促す時に送られるシグナルです。「signal」を指定しなかった場合には、このシグナルを指定したことになります
TERM
ハングアップ

 ハングアップとは、OSが処理不能に陥った状態を表す言葉で、フリーズと呼ばれることもあります。ハングアップは、端末が制御不能となりコマンドを受け付けない状態と言えます。例えば、端末をつないでいるケーブルを抜いたり、端末自身の電源を切った場合にもこのシグナルが送られます

デーモン

 デーモンとは、常に動作して何かを監視しているプログラムのことで、決められたタイミング(変化)をきっかけに、決められたアクションを起こします。例えばプリントデーモンは、印刷物がスプールに入るのを監視し、データがスプールに入ってきた場合に、そのデータをプリンタに印刷要求するという役割を持っています

ゾンビプロセス

 プロセスからさらにプロセスが生成される場合があります。生成した側を親プロセス、生成された側を子プロセスと呼びます。そして、子プロセスは親プロセスによって管理されます。

 この時、なんらかの理由(killコマンドなど)で親プロセスがなくなった場合、子プロセスは管理者を失い、動作できなくなります。このように、何からも管理されないことによって、動作することができなくなったプロセスを、ゾンビプロセスといいます

引数
① PID ...
シグナルを送るプロセスのプロセスIDを指定します。
apacheの設定ファイルを再読み込みする
# ps -ef | grep httpd 
root 899 1 0 09:11 ? 00:00:02 /usr/sbin/httpd
apache 1736 899 0 09:55 ? 00:00:00 /usr/sbin/httpd
apache 1737 899 0 09:55 ? 00:00:00 /usr/sbin/httpd
# kill -1 899
親プロセスIDが「1」である、プロセスID「899」のプロセスが親デーモン
このプロセスに対してSIGHUP(1)を送信することにより、設定ファイルを再読み込みし、子プロセスを再起動する
# ps -ef | grep httpd
root 899 1 0 09:11 ? 00:00:03 /usr/sbin/httpd
apache 1751 899 0 09:57 ? 00:00:00 /usr/sbin/httpd
apache 1752 899 0 09:57 ? 00:00:00 /usr/sbin/httpd
新たなプロセスが生成されたことが、子プロセスのプロセスIDの変化からわかる
プロセスID899のプロセスを強制終了する
# kill -SIGKILL 899 
# ps -ef | grep 899
#
HINT!

 psコマンド・grepコマンド

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5