【问题标题】:How could I manage processes in a python-bash environment?如何在 python-bash 环境中管理进程?
【发布时间】:2019-09-23 00:29:54
【问题描述】:

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

  1. 向服务器提交 A.sh;
  2. 等待计算结束,假设生成B.chk;
  3. 使用 B.chk 和现有脚本 C.py 进行另一次计算
  4. 在一个 .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")

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

【问题讨论】:

    标签: python bash process


    【解决方案1】:

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

    https://github.com/IBMSpectrumComputing/lsf-python-api

    【讨论】:

      猜你喜欢
      • 2014-08-24
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多