Unixコマンド/kill
kill †
機能 †
killコマンドは、指定したプロセスIDのプロセスを終了させます。
たとえば、暴走したりハングアップしたプロセスを強制終了させる、といった事ができます。
また、killコマンドは、ハイフン(-)に続けてシグナル名(またはシグナル番号)を指定して、任意の
種類のシグナルを指定したプロセスに送ることができます。-lオプションを指定してkillコマンドを
実行すると、指定可能なシグナルの一覧が表示されます。
一般ユーザがkillコマンドでシグナルを送れるのは、自分が起動したプロセスだけですが、
スーパーユーザは全てのプロセスに対してシグナルを送れます。
構文 †
kill [オプション] プロセスID
kill %ジョブ番号
オプション †
-シグナル名または番号 指定したシグナル名(または番号)のシグナルを送る。 -l 指定可能なシグナルの一覧を表示する。
主なシグナル番号とシグナル名は次のとおりです: †
1 HUP (hang up) ハングアップ 2 INT (interrupt) 割り込み(Ctrl+C) 3 QUIT (quit) 中断(Ctrl+\) 6 ABRT (abort) 9 KILL (non-catchable, non-ignorable kill) 強制終了 14 ALRM (alarm clock) 15 TERM (software termination signal) 終了
コマンド例 †
自分の実行したプロセスを強制終了する †
> tail -5f /var/log/messages & バックグラウンドでtailコマンドを実行する。 [2] 7801 > ps 現在実行中のプロセスを表示する。 PID TT STAT TIME COMMAND 7647 p0 Ss 0:00.17 -csh(csh) 7709 p0 T 0:00.01 man csh 7710 p0 T 0:00.01 sh -c /usr/bin/zcat /usr/share/man/cat1/csh.1.gz |j 7711 p0 T 0:00.01 /usr/bin/zcat /usr/share/man/cat1/csh.1gz 7712 p0 T 0:00.03 jless 7801 p0 S 0:00.01 tail -5f /var/log/messages 7802 p0 R+ 0:00.00 ps > kill 7801 プロセスID(7801)を終了させる [2] Terminated tail -5f /var/log/messages 終了の旨が表示される > ps 7801 PID TT STAT TIME COMMAND プロセスID(7801)は存在しない、終了している。 >
実行中のプロセスにシグナルを送る †
# ps ax | grep sendmail 実行中のプロセスを表示し、sendmailを含むものを抜き出す 15508 ?? Is 1:34.44 sendmail: accepting connections on port 25 (sendmail) # cat /var/run/sendmail.pid 15508 # kill -HUP 15508 sendmailにHUPシグナルを送る # tail -2 /var/log/maillog maillogに残されたsendmailのログを確認する Apr 20 20:06:28 unixsvr1 sendmail[15508]: restarting /usr/sbin/sendmail on signal #