def get_queue():
cols = [["job_id", "%i"], ["job_name", "%j"], ["state", "%t"],
["time", "%M"], ["reason", "%R"]]
col_names = [x[0] for x in cols]
col_formats = [x[1] for x in cols]
cmd = ["/usr/cluster/bin/squeue",
"-u", pwd.getpwuid(os.getuid())[0],
"-p", "encore",
"-o", "|".join(col_formats),
"--noheader"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
squeue_out, squeue_err = p.communicate()
queue = {"running": [], "queued": []}
for line in squeue_out.split("\n"):
values = line.split("|")
if len(values) != len(col_names):
continue
row = dict(zip(col_names, values))
row["job_name"] = row["job_name"][5:]
if row["state"]=="R":
queue["running"].append(row)
elif row["state"] == "PD":
queue["queued"].append(row)
return queue
评论列表
文章目录