如何在python bash环境中管理流程?

如何在python bash环境中管理流程?,python,bash,process,Python,Bash,Process,我有一个用于科学计算的linux服务器。 服务器提供bsub

我有一个用于科学计算的linux服务器。 服务器提供
bsub<[filename]
用于将[filename]提交到队列,计算将在2小时后返回类似“A.chk”的文件; 以及用于检查所有作业状态的
bjobs
,包括作业ID、运行状态(运行、挂起、退出)等。 现在我想满足以下需求:

  • 向服务器提交A.sh
  • 等待计算终止,假设它生成B.chk
  • 使用B.chk和现有脚本C.py执行另一个计算
  • 在一个.py脚本中自动执行所有这些操作
  • 我已经在python脚本中获得了最新的jobID和运行状态。 我尝试了以下解决方案:

    import os
    import time
    
    os.system("bsub < %s" %(A.sh))
    job_ID = get_jobID()
    while(get_runstatus(jobID) != "RUN" and get_runstatus(jobID) != "PEND"):
        time.sleep(30)
    
    if "B.chk" in os.listdir():
        os.system("python C.py")
    
    导入操作系统
    导入时间
    操作系统(“b sub<%s”%(A.sh))
    job\u ID=get\u jobID()
    while(get_runstatus(jobID)!=“RUN”和get_runstatus(jobID)!=“PEND”):
    时间。睡眠(30)
    如果os.listdir()中的“B.chk”:
    系统(“pythonc.py”)
    

    但是服务器中的while循环占用了太多的公共资源,所以我不愿意这样做。然后我在子流程中搜索了类似
    process.join()
    的解决方案,但在python中,服务器上的作业序列不能被视为子流程。所以我在这里向你们寻求更好的解决方案。谢谢。

    虽然这并不能完全回答您的问题,但github上有一个针对LSF的Python API


    虽然这不能完全回答您的问题,但github上有一个针对LSF的Python API