Unixコマンド/kill の変更点
*&SIZE(15){''kill''}; [#oa086e00]
[[dokuwiki.fl8.jp掲載済>http://dokuwiki.fl8.jp/doku.php/02_freebsd/80_unix%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/kill]]
**''機能'' [#g3d08099]
killコマンドは、指定したプロセスIDのプロセスを終了させます。&br;
たとえば、暴走したりハングアップしたプロセスを強制終了させる、といった事ができます。&br;
また、killコマンドは、ハイフン(-)に続けてシグナル名(またはシグナル番号)を指定して、任意の&br;
種類のシグナルを指定したプロセスに送ることができます。-lオプションを指定してkillコマンドを&br;
実行すると、指定可能なシグナルの一覧が表示されます。&br;
一般ユーザがkillコマンドでシグナルを送れるのは、自分が起動したプロセスだけですが、&br;
スーパーユーザは全てのプロセスに対してシグナルを送れます。&br;
**''構文'' [#t97811eb]
kill [オプション] プロセスID&br;
kill %ジョブ番号
**''オプション'' [#kc598cfd]
-シグナル名または番号 指定したシグナル名(または番号)のシグナルを送る。
-l 指定可能なシグナルの一覧を表示する。
***主なシグナル番号とシグナル名は次のとおりです: [#ta1965e1]
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) 終了
**''コマンド例'' [#o5a6551b]
***''自分の実行したプロセスを強制終了する'' [#bee3922e]
> 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)は存在しない、終了している。
>
***''実行中のプロセスにシグナルを送る'' [#wefb61f4]
# 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
#