我写了一个信号处理程序,可以通过以下方式重新启动脚本:
kill -10 $PID
我在脚本的开头注册了处理程序。
signal.signal(signal.SIGUSR1, restart_handler)
我的脚本主要做以下事情:
下载源代码时,我使用kill -10
重新启动它,
它按照我的预期快速正常地运行处理程序。
然而,当它开始make -j16
时,我使用相同的kill命令,
但需要等待很长时间才能到达信号处理程序。
(看起来信号没有立即处理,
但如果我使用kill -9 $PID
,它可以立即被杀死)
如何使我的自定义信号处理程序可以像-9
一样快速?
make -j16
时的pstree输出:
https://www.dropbox.com/s/rbfzn0p0f2p55xx/make.png