`kill -9 <pid>` 和 `kill -INT <pid>` 之间的区别?

Ale*_*lls 7 kill signals

我无法弄清楚两者之间的区别

kill -9 <pid>

kill -INT <pid>

谁能像我 3 岁一样向我解释一下?

Rob*_*rtL 11

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命令有许多版本。大多数 shell(ksh、bash、dash 等)都有内置kill命令,在/bin/kill. 它们都略有不同,但大多数都支持上述示例。

大多数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     
$
Run Code Online (Sandbox Code Playgroud)

阅读信号的好地方是手册第 7 节中的“信号”手册页:man 7 signal

  • `kill -9` 也可以写成 `kill -KILL`。 (4认同)