Python 希望在所有子进程都已完成运行时停止它们
目前我正在运行一个python脚本,它运行某个目录中的所有shell脚本。我遇到了问题,因为即使所有其他脚本都已运行完毕,进程也不会停止 这是我的密码Python 希望在所有子进程都已完成运行时停止它们,python,bash,Python,Bash,目前我正在运行一个python脚本,它运行某个目录中的所有shell脚本。我遇到了问题,因为即使所有其他脚本都已运行完毕,进程也不会停止 这是我的密码 for file in dirs: if file.endswith(".sh"): filePath = os.getcwd() + "/arrayscripts/" + file arrayProcess = subprocess.Popen([filePath, delay, loop, userID
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。显然,这不是一个很好的方法,因为有时会出现意外的延迟/延迟,因此我应该使用不同的解决方案。您可以使用等待进程终止。最好的选择是将所有进程存储在一个列表中,在启动所有进程之后,只需等待(),直到它们终止。您不应该手动杀死它们(如果脚本自行退出)