我有一个以守护进程模式启动屏幕的脚本,后者又运行程序命令。
screen -L -c <SCREEN_CONFIG-FILE> -dmS <SCREEN-NAME> <program-COMMAND>
启动屏幕后脚本将退出。
当我执行ps时,我看到屏幕和程序都运行不同的pgid和sid。 程序的ppid是屏幕的pid。
现在如果SIGTERM被发送到屏幕进程,程序会发生什么:它会得到SIGTERM:根据我的经验,屏幕和程序都被杀死了,但是程序没有得到SIGTERM信号,它因某些原因而死亡我想其他信号。
此外,如果SIGTERM直接发送到程序进程或程序退出自身会发生什么情况,屏幕进程也会死掉:
答案 0 :(得分:2)
如果您将SIGTERM发送到屏幕守护程序,它将终止并且所有子进程也将终止。如果您发送SIGTERM命令的进程,它可能取决于命令。通常它也应该终止,如果你可以编辑某些脚本,你可以捕获SIGTERM并防止它被终止。
让我们说你做了这样的事情:
screen -dmS test-screen bash -c top (screen PID 2001 / top PID 3001)
你说
kill 2001
屏幕守护程序将终止,随之而来的bash托管顶部和顶部也将终止。
kill 3001
将终止顶部,bash将终止,屏幕守护程序将结束。