違いがわからない
kill -9 <pid>
そして
kill -INT <pid>
私が3歳のように誰かに説明してもらえますか?
kill -INT $pid
は、プロセスID pid
のプロセスに「割り込み」信号を送信します。ただし、プロセスはシグナルを無視するか、シグナルをキャッチして終了する前に何かを行うか、シグナルを無視するかを決定します。
kill -9 $pid
は、キャッチまたは無視できない「kill」信号を送信します。プロセスは通知されずに強制的にシャットダウンされ、クリーンアップを実行する機会もありません。 kill -9 $pid
は、推奨されることも使用されることもほとんどありませんが、必要な場合もあります。
高度な概念
kill -INT $pid
はkill -2 $pid
と同じです。kill -9 $pid
はkill -KILL $pid
と同じです
kill
コマンドには多くのバージョンがあります。ほとんどのシェル(ksh、bash、dashなど)にはkill
コマンドが組み込まれており、/bin/kill
にも1つあります。それらはすべて少し異なりますが、それらのほとんどは上記の例をサポートしています。
ほとんどのkillコマンドには、信号をリストするための-l
または-L
オプションがあります。
$ /bin/kill -L
1 HUP 2 INT 3 QUIT 4 ILL 5 TRAP 6 ABRT 7 BUS
8 FPE 9 KILL 10 USR1 11 SEGV 12 USR2 13 PIPE 14 ALRM
15 TERM 16 STKFLT 17 CHLD 18 CONT 19 STOP 20 TSTP 21 TTIN
22 TTOU 23 URG 24 XCPU 25 XFSZ 26 VTALRM 27 PROF 28 WINCH
29 POLL 30 PWR 31 SYS
$
シグナルについて読むのに適した場所は、マニュアルのセクション7の "signal"のマニュアルページです:man 7 signal
。