所以我同时开始4个代码,我希望其中3个代码循环运行,直到第4个程序结束。
sys.modules
所以我想要执行loopPrograms 1,2和3,然后在program4完成后退出所有这些。我有什么方法可以做到这一点吗?
答案 0 :(得分:0)
如果您要杀死主脚本,那么bash中的一个也负责处理后台进程。首先是弯针:
$ cat loopProgram
while true # loops forever echoing its parameter number set in main
do
echo $1
sleep 1
done
和主要:
$ cat main.bash
function finish {
kill %1 %2 %3
}
trap finish EXIT
bash loopProgram 1 &
bash loopProgram 2 &
bash loopProgram 3 &
sleep 3 # this mimics your Program4
运行它:
$ bash main.bash
2
1
3
1
2
3
2
1
3
$
由于我的loopers永远循环,如果你在kill
和^ C'之后将main.bash
留在sleep
的底部,它会让loopers在后台运行
(我得到了影响,我希望这个例子很清楚。我可能会在下一次小睡后忘记它。)