使用 kill 命令格式的操作有什么区别,在什么情况下使用哪一种。
kill -9 process-id
kill SIGUSR2 process-id
使用 kill 命令格式的操作有什么区别,在什么情况下使用哪一种。
kill -9 process-id
kill SIGUSR2 process-id
如果你想发送SIGUSR2
到一个进程,你可以使用:
kill -SIGUSR2 $pid
kill -USR2 $pid
kill -10 $pid # This will vary with platform
如果你想发送SIGKILL
到一个进程,你可以使用:
kill -SIGKILL $pid
kill -KILL $pid
kill -9 $pid
不知道如何回答您关于“哪种情况”的问题。如果要发送USR2
,则使用前 3 个命令之一。如果要发送KILL
,请使用后者之一。您通常希望避免使用KILL
, 作为一个接收到 a 的进程,KILL
它自身无法清理。另一方面,很多软件写得不好,只能通过SIGKILL
. 通常认为发送更有礼貌TERM
,然后在第二次发送之前等待一段TERM
时间,然后在发送之前再次等待KILL
。 USR2
通常只对期待它并以某种有用方式响应的程序有用。如果程序不期望该信号并且没有采取任何措施来忽略它,则默认行为是终止。
请注意,SIGUSR2 的具体信号编号会有所不同。根据平台的不同,它可能是 10、12、31,可能还有许多其他值。最好避免显式设置该值。唯一标准化的信号编号是 1、2、3、6、9、14 和 15,因此 9 始终是SIGKILL
,但SIGUSR2
可能(并且确实!)会有所不同。