检查后台运行的多个rsync的状态

时间:2013-10-04 14:04:39

标签: bash shell

在我的bash shell脚本中,我想从远程计算机并行获取数据,所以我在命令之间使用了&

由于我的路径是在运行时配置的,所以我首先使用了一个变量(默认为String),

variable1="rsync -a /path/to/${runtime_parameter}_01/abc/xyz.txt"
variable2="rsync -a /path/to/${runtime_parameter}_02/def/ghi.txt"
variable3="rsync -a /path/to/${runtime_parameter}_02/mno/jkl.txt"

然后我按如下方式执行它们,

`$variable1` & `$variable2` & `$variable3`

使用单rsync时,我会检查$?,即退出状态是否等于0是否成功。

除非rsync进程完成,否则我的脚本不应继续。如何验证流程是否已完成?

1 个答案:

答案 0 :(得分:4)

在后台生成所有作业(即使是最后一个作业)后调用wait。它会等到它们全部完成。

如果您想从每个子进程中获取返回状态代码,请查看以下答案:https://stackoverflow.com/a/356154/4323(基本上,使用wait,但一次只能使用一个PID。