我无法弄清楚两者之间的区别
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
。