You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让GNU Parallel所有任务执行完成后再运行后续cp命令?

解决方法

标准GNU Parallel 默认就会等待所有提交的任务全部执行完成后才退出,你遇到提前返回的情况可以按下面的步骤处理:

  • 首先检查你有没有给parallel加--bg、--daemon这类让任务后台执行的参数,这类参数会让parallel启动任务后直接返回,删掉这类参数即可。
  • 如果确认没有加上述参数,大概率是你的python脚本内部有自行派生后台子进程、主进程提前退出的逻辑,这种情况可以给parallel加--wait参数,强制等待任务相关的所有子进程全部退出后再结束:
cat input.txt | parallel -j4 --wait 'python {}'
cp -r outputs /home/usr/my_outputs
  • 如果你需要做执行结果校验,避免任务失败还复制无效输出,可以加返回值判断逻辑:
cat input.txt | parallel -j4 --wait 'python {}'

# 只有所有任务全部执行成功(返回值为0)才执行复制操作
if [ $? -eq 0 ]; then
  cp -r outputs /home/usr/my_outputs
else
  echo "部分任务执行失败,已终止复制"
  exit 1
fi
  • 如果你当前系统装的不是GNU Parallel,可以先安装对应包(不同系统包名可能为parallel或gnu-parallel),再使用上述写法即可。

内容的提问来源于stack exchange,提问作者rohit_r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:24:01