0

使用 kill 命令格式的操作有什么区别,在什么情况下使用哪一种。

kill -9 process-id
kill SIGUSR2 process-id
4

1 回答 1

4

如果你想发送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时间,然后在发送之前再次等待KILLUSR2通常只对期待它并以某种有用方式响应的程序有用。如果程序不期望该信号并且没有采取任何措施来忽略它,则默认行为是终止。

请注意,SIGUSR2 的具体信号编号会有所不同。根据平台的不同,它可能是 10、12、31,可能还有许多其他值。最好避免显式设置该值。唯一标准化的信号编号是 1、2、3、6、9、14 和 15,因此 9 始终是SIGKILL,但SIGUSR2可能(并且确实!)会有所不同。

于 2012-12-13T18:36:45.200 回答