我想使用python代码中的supervisorctl
来操作一个进程,以获取状态并生成这样的条件分支:
import subprocess
status = subprocess.run(["sudo", "supervisorctl", "status", "my_process"])
if status == "STOPPED":
# Do something
else:
# Do another thing
但这不起作用。 subprocess.run
返回CompletedProcess(args=['sudo', 'supervisorctl', 'status', 'my_status'], returncode=0)
。响应没有状态。
有没有办法获得状态?
答案 0 :(得分:2)
我认为您需要使用subprocess.check_output()
来获取返回给您的输出,而不仅仅是返回代码。
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)
使用参数运行命令并将其输出作为字节字符串返回。
答案 1 :(得分:0)
python subprocess
文档描述了.run()
如何返回CompletedProcess
个对象。
从那里你可以检索状态:
status = subprocess.run(["sudo", "supervisorctl", "status", "my_process"])
if status.returncode == 0:
# success
else:
# something went wrong