我不明白两者之间有什么区别
kill -9 <pid>
和
kill -INT <pid>
谁能像我三岁一样给我解释一下?
答案1
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
.它们都略有不同,但大多数都支持上述示例。
大多数终止命令都有一个-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 节中的“信号”手册页:man 7 signal
。