使用kill命令格式的操作有什么区别,在哪种场景下使用。
kill -9 process-id
kill SIGUSR2 process-id
答案 0 :(得分:3)
如果您想将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
,因为接收KILL
的进程无法自行清理。另一方面,许多软件写得很差,只能通过SIGKILL
终止。发送TERM
通常被认为更礼貌,然后等待一段时间再发送TERM
,然后再发送KILL
。 USR2
通常仅对期望它的程序有用,并且会以某种有用的方式响应。如果程序没有预料到信号并且没有采取任何操作来忽略它,则默认行为是终止。
请注意,SIGUSR2的特定信号编号会有所不同。根据平台,它可能是10,12,31,可能还有许多其他值。最好避免明确设置值。唯一的standardized信号是1,2,3,6,9,14和15,所以9总是SIGKILL
,但SIGUSR2
可能(并且确实!)变化