我设计了一些代码来获取一个文件,对其执行 dos2unix 命令,然后将该文件复制到一个名为 INPUT 的文件中,然后运行一个启动程序的命令。从我的代码中,前两个任务完美地工作,但是脚本似乎没有执行启动程序的命令行。但是,当我完全按照我在脚本中编写的命令行并在终端中传递它时,它工作正常。
这是代码:
import subprocess
import os
os.chdir('/home/mike/testing/crystal')
subprocess.Popen(['dos2unix mgo_input'], stdout=subprocess.PIPE, shell=True)
subprocess.call(['cp mgo_input INPUT'], shell=True)
subprocess.Popen(['mpirun -np 8 Pcrystal </dev/null &> mgo_singlepoint.out &'], stdout=subprocess.PIPE, shell=True)
似乎被挂断的是代码的 mpirun 部分