目前我正在运行一个python脚本,它运行某个目录中的所有shell脚本。我遇到了问题,因为即使所有其他脚本都已运行完,进程也不会停止
这是我的密码
for file in dirs:
if file.endswith(".sh"):
filePath = os.getcwd() + "/arrayscripts/" + file
arrayProcess = subprocess.Popen([filePath, delay, loop, userID], shell=False)
有没有什么方法可以检查这些脚本是否都已经运行完毕,这样我就可以终止arrayProcess了
之前,我尝试使用delay和loop变量来确定脚本将运行多长时间,然后为结果添加一秒钟。然后我用这个结果告诉我的脚本休眠,直到脚本完成,然后杀死arrayProcess。显然这不是一个很好的方法去做这件事,因为有时可能会有意想不到的延迟/滞后,所以我应该使用一个不同的解决方案
您可以使用Popen.wait()等待进程终止。
最好的选择是将所有进程存储在一个列表中,然后在启动所有进程之后
wait()
直到它们终止。您不必手动终止它们(如果脚本自行退出)相关问题 更多 >
编程相关推荐