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

how to send a bash command to command line using python and execute next command without waiting for bash command to execute?

我想在超级计算机节点的 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")

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

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

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

走在正确的轨道上,但只是为了解释发生了什么:您的代码没有对 运行 并行命令执行任何操作。实现方式包括但不限于: