如何从 python 代码获取进程状态?
How to get process' status from python code?
我想使用 python 代码中的 supervisorctl
来操作一个进程,以获取状态并进行如下条件分支:
import subprocess
status = subprocess.run(["sudo", "supervisorctl", "status", "my_process"])
if status == "STOPPED":
# Do something
else:
# Do another thing
但这行不通。 subprocess.run
returnsCompletedProcess(args=['sudo', 'supervisorctl', 'status', 'my_status'], returncode=0)
。响应没有状态。
有什么方法可以获取状态吗?
我认为您需要使用 subprocess.check_output()
来获取 returned 给您的输出,而不仅仅是 return 代码。
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)
运行 带参数的命令和 return 其输出为字节字符串。
python subprocess
文档描述了如何 .run()
returns CompletedProcess
对象。
从那里您可以检索诸如状态之类的内容:
status = subprocess.run(["sudo", "supervisorctl", "status", "my_process"])
if status.returncode == 0:
# success
else:
# something went wrong
我想使用 python 代码中的 supervisorctl
来操作一个进程,以获取状态并进行如下条件分支:
import subprocess
status = subprocess.run(["sudo", "supervisorctl", "status", "my_process"])
if status == "STOPPED":
# Do something
else:
# Do another thing
但这行不通。 subprocess.run
returnsCompletedProcess(args=['sudo', 'supervisorctl', 'status', 'my_status'], returncode=0)
。响应没有状态。
有什么方法可以获取状态吗?
我认为您需要使用 subprocess.check_output()
来获取 returned 给您的输出,而不仅仅是 return 代码。
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)
运行 带参数的命令和 return 其输出为字节字符串。
python subprocess
文档描述了如何 .run()
returns CompletedProcess
对象。
从那里您可以检索诸如状态之类的内容:
status = subprocess.run(["sudo", "supervisorctl", "status", "my_process"])
if status.returncode == 0:
# success
else:
# something went wrong