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

2024-06-16 10:11:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在超级计算机节点的3个独立核心处理器上执行3个独立的bash命令。 我有一个python脚本,它通过操作系统但是,在进入python脚本的下一行之前,它似乎要执行bash命令直到完成。我只想把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")

Tags: pycore命令脚本bashtreedfhome
2条回答

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

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

#/bin/bash
a &
b &
c &
wait

我本来可以给你一个更具体的答案,如果你的代码已经格式化,我可以复制粘贴,然后执行它。你知道吗

相关问题 更多 >