Python 停止子流程多次启动流程
我有一个类似蟒蛇的问题: 假设我正在使用python中的子进程库从终端运行程序。我需要在循环中调用子流程。 我怎样才能: 1如果子进程已经启动,我将停止它启动程序。或Python 停止子流程多次启动流程,python,subprocess,Python,Subprocess,我有一个类似蟒蛇的问题: 假设我正在使用python中的子进程库从终端运行程序。我需要在循环中调用子流程。 我怎样才能: 1如果子进程已经启动,我将停止它启动程序。或 2如何确定程序是否仍在运行,以便不启动新的子流程?您可以使用检查流程是否正在运行。如果进程当前正在运行,它将返回None。否则,它将返回子进程的退出代码。例如: import subprocess import time p = None while True: if p and p.poll() is None:
2如何确定程序是否仍在运行,以便不启动新的子流程?您可以使用检查流程是否正在运行。如果进程当前正在运行,它将返回None。否则,它将返回子进程的退出代码。例如:
import subprocess
import time
p = None
while True:
if p and p.poll() is None:
print("Process is currently running. Do nothing.")
else: # No process running
if p: # We've run the process at least once already, so get the result.
ret = p.returncode
print("Last run returned {}".format(ret))
p = subprocess.Popen(["some_command", "some arg"])
time.sleep(3) # Wait a few seconds before iterating again.
您是否只关心由Python脚本启动的子进程的实例?在进入循环的下一个迭代之前,您是否可以等待子流程完成?有时,我需要在它停止之前捕获它。还有一些时候我想等到它结束再重复。