在bash中并行运行多个命令

时间:2017-11-17 09:27:21

标签: bash shell wait

我想在bash中并行运行多个脚本/命令。 这是bash脚本:

python test_script.py &
docker stop process &
docker stop process1 &
sleep(1)
wait

docker start process1 &
docker start process &
wait

在这里,我正在运行多个docker并希望在我的脚本python test_script.py运行时启动/停止docker。

对于ex:python脚本正在运行并且在并行上我想要停止进程& process1 docker。 python脚本仍在进行中,然后说等待或睡眠1分钟并再次启动该过程。

我怎样才能实现它?

2 个答案:

答案 0 :(得分:1)

您可以合并以下规则:

X; Y运行X然后是Y,无论X

成功

X&& Y如果X成功则运行Y

X || Y如果X失败则运行Y

X&在后台运行X.

答案 1 :(得分:1)

从原始描述中,我们似乎可以将问题组织成两个脚本

  • 主要python脚本test_script.py
  • docker重启脚本说restart_docker.sh,其中包含将按顺序执行的所有与docker相关的命令

    docker stop process
    sleep 1m
    docker start process
    

使用GNU parallel,您可以提供这两个脚本作为要并行执行的参数

parallel ::: 'python test_script.py' 'bash restart_docker.sh'