为什么 killall (有时?) 需要应用两次?这是一个例子killall
其中需要“double”来结束该过程。
何时以及为何需要“两次”终止进程?引擎盖下发生了什么?
答案1
我将陈述一个特定于应用程序的可能性。
当您使用 时killall program
,SIGTERM
会向程序发送 (信号 15)。 对 的通常响应SIGTERM
是程序将正常退出。
现在,由于 是SIGTERM
可捕获的,程序可以有一个 信号处理程序,SIGTERM
该处理程序将在收到第一个SIGTERM
(第一个killall
)时执行某些任务,并返回到第二个 只会终止它的状态SIGTERM
(默认操作)。当然,这在很大程度上取决于程序的开发人员,而不是一般情况。