在 Linux 上,我想生成一些服务器作为后台服务。
一旦其中一个以退出代码 != 0 终止,他们都将被 SIGTERMed,如果他们不想去,则在 3 秒宽限期后被杀死。
按下 Ctrl-C 时也会发生同样的情况。
我想要一个粗略的等价物
set -e
server1 &
server2 &
server3 &
wait (+ kill on error)
(不幸的是,上面的代码没有所有提到的属性。)
儿童不得盗取/逃避 Ctrl-C 信号。
我接受Bash和Python中的解决方案(使用subprocess
)。对于 Python,它们可能只使用标准库函数(我不必先下载模块pip
)。如果你有一种很酷的方法可以用另一种语言做到这一点,请不要犹豫,展示它。
如果它也适用于 Mac OS,则可以加分。