Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 希望在所有子进程都已完成运行时停止它们_Python_Bash - Fatal编程技术网

Python 希望在所有子进程都已完成运行时停止它们

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

目前我正在运行一个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。显然,这不是一个很好的方法,因为有时会出现意外的延迟/延迟,因此我应该使用不同的解决方案。

您可以使用等待进程终止。
最好的选择是将所有进程存储在一个列表中,在启动所有进程之后,只需等待(),直到它们终止。您不应该手动杀死它们(如果脚本自行退出)