启动几个代码并在其中一个代码完成后停止

时间:2018-03-07 16:34:41

标签: bash

所以我同时开始4个代码,我希望其中3个代码循环运行,直到第4个程序结束。

sys.modules

所以我想要执行loopPrograms 1,2和3,然后在program4完成后退出所有这些。我有什么方法可以做到这一点吗?

1 个答案:

答案 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在后台运行

(我得到了影响,我希望这个例子很清楚。我可能会在下一次小睡后忘记它。)