当父母离开时叉子子进程会死? (bash)
问题描述:
我正在使用并行处理,而不是处理cvars和锁我发现在shell脚本中依次运行一些命令以避免竞争条件在一个地方更容易。新问题是这些命令中的一个调用另一个程序,操作系统决定将这个程序放入一个新进程。我需要从父程序中杀死这个进程,但是父程序只知道父进程的pid(shell脚本),所以这个进程会自动执行。当父母离开时叉子子进程会死? (bash)
有没有办法在bash中设置一个子进程死亡,当父母死亡?我试图弄清楚如何将它作为一个守护进程来执行,因为我在守护进程中读取守护进程时退出,但这很棘手,我不能完全正确地执行它。谢谢!
答
发现问题,并解决了这个问题(除了一些烦人的消息,不知何故无法重定向到/ dev/null)。
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
+0
在你遇到的问题上增加一点背景知识,并解释这个命令如何解决它! – Inian
你的意思是说当开始的父脚本退出时要杀死所有的后台进程吗? – Inian
是的!我怎样才能做到这一点?谢谢。 – AndyW
我想你会在父进程退出时需要'trap'命令,但我不知道如何使用它。 – Inian