如何使用python将bash命令发送到命令行并执行下一个命令而不等待bash命令执行?

时间:2018-12-02 20:51:00

标签: python bash cluster-computing core supercomputers

我想在超级计算机节点的3个独立核心处理器上执行3个独立bash命令。 我有一个python脚本,它通过os.system将bash命令发送到命令行,但是似乎要执行bash命令才能完成,然后再转到python脚本的下一行。我只想将bash命令一个接一个地发送到命令行。

 for i in range(0, len(core), 8) :
        os.system("bpsh "+str(1)+" nohup python /home/tree_df_unchuncked.py "+str(' '.join(core[i]))+" 0.01"+" y")
        os.system("bpsh "+str(1)+" nohup python /home/tree_df_unchuncked.py "+str(' '.join(core[i+1]))+" 0.01"+" y")
        os.system("bpsh "+str(1)+" nohup python /home/tree_df_unchuncked.py "+str(' '.join(core[i+2]))+" 0.01"+" y")

2 个答案:

答案 0 :(得分:2)

考虑从您的python程序构建一个shell脚本文件,然后执行该shell脚本。在构建shell脚本时,在每行的末尾放置&。将wait命令放在程序末尾也很有用,这样shell脚本将暂停直到所有后台命令(并行运行)完成为止。

Data[i*8*8 : (i*8*8 + 8*8)]

如果您的代码经过格式化,我本可以为您提供更具体的答案,以便我可以复制并粘贴然后执行它。

答案 1 :(得分:0)

@Mark处在正确的轨道上,但是只是为了解释正在发生的事情:您的代码没有做任何事情来并行运行命令。做到这一点的方法包括但不限于: