使bash文件等待在Fortran中进行的系统调用

问题描述 投票:0回答:1

我的bash脚本看起来像这样

mpiexec ./fortran_bin |& tee text_file
wait

./process_output_files

我基于MPI的Fortran程序使用call exec_cmd(cmd,wait=.true.)进行了几个同步系统调用。我的问题是handle_output_files仅等待fortran_bin完成,但是某些系统命令(cmd)尚未完成,这使我的输出文件混乱。如何使process_output_files等待cmd完成?

注意

  1. 我不确定在哪里最好解决此问题(如果有解决方案,请执行以下操作:在Fortran中,在Mash中,在Bash中...
  2. cmd的格式为cat out_{1..n} > out && rm -f out_{1..n}。我希望它可以同步运行(wait=.false.),因为cmd可能很耗时,并且与Fortran程序的其余部分无关。
  3. bash脚本中的wait行似乎无效。
  4. 我想您可以对调用system(some_script)的C / C ++程序问同样的问题。但是,如果同一个程序需要被调用命令的结果(例如herehere),我只能找到有关在C / C ++程序中等待的问题。

我的bash脚本看起来像这样的mpiexec ./fortran_bin |&tee text_file wait ./process_output_files基于MPI的Fortran程序使用调用...进行多个同步系统调用。

bash fortran mpi wait
1个回答
0
投票

从上面的注释中,看起来像子命令在调用进程上继承了stdout / stderr,并且不留下任何后台进程。

© www.soinside.com 2019 - 2024. All rights reserved.