为什么 killall(有时?)需要应用两次?

为什么 killall(有时?)需要应用两次?

为什么 killall (有时?) 需要应用两次?这是一个例子killall其中需要“double”来结束该过程。

何时以及为何需要“两次”终止进程?引擎盖下发生了什么?

答案1

我将陈述一个特定于应用程序的可能性。

当您使用 时killall programSIGTERM会向程序发送 (信号 15)。 对 的通常响应SIGTERM是程序将正常退出。

现在,由于 是SIGTERM可捕获的,程序可以有一个 信号处理程序,SIGTERM该处理程序将在收到第一个SIGTERM(第一个killall)时执行某些任务,并返回到第二个 只会终止它的状态SIGTERM(默认操作)。当然,这在很大程度上取决于程序的开发人员,而不是一般情况。

相关内容