后台运行的进程有三个(proc1 1~3.sh)。当其中一个程序退出错误时,我想退出/停止所有这些程序。以下是我的简单方法,但仍然存在以下问题:
示例脚本是:
#!/bin/bash
set -e
proc1.sh &
pid1=$!
proc2.sh &
pid2=$!
proc3.sh &
pid3=$!
if ! wait $pid1 ; then
echo "Err: proc1 stopped"
exit 1
fi
if ! wait $pid2 ; then
echo "Err: proc2 stopped"
exit 1
fi
if ! wait $pid3 ; then
echo "Err: proc3 stopped"
exit 1
fi发布于 2017-10-30 04:21:17
一个解决方案是使用GNU parallel
parallel -j3 --halt 2 bash ::: proc[1-3].sh-j3并行运行3个作业--halt 2将退出https://stackoverflow.com/questions/47007876
复制相似问题