0
我想同時運行兩個子進程。我目前的程序看起來像是一個子進程出錯並終止,1分鐘後它不能再次重新啓動。它需要等待另一個子進程失敗,並且它們都一起啓動。我發現了一些關於如何殺死特定子進程的帖子,但是我怎麼能(1)如果一個子進程有錯誤,所有的子進程會被終止並在1分鐘後再次重新啓動?或者(2)有錯誤的子進程可以在1分鐘後再次重新啓動,而無需等待另一個正在運行的子進程?如果我在下面的代碼更改終止所有子進程,如果任何一個子進程有錯誤
proc.wait()
到
proc.kill()
它是否行得通呢?有沒有更好的方法來處理它?
import sys
import subprocess
import os
import time
def executeSomething():
# This setting is very important to avoid errors
os.environ['PYTHONIOENCODING'] = 'utf-8'
procs = []
files = ["TwitterDownloader_1.py","TwitterDownloader_2.py"]
try:
for i in files:
proc = subprocess.Popen([sys.executable,i])
procs.append(proc)
for proc in procs:
proc.wait()
except AttributeError:
print 'Attribute Error found and skiped'
time.sleep(61)
while True:
executeSomething()
可能重複[?如何讓家長退出後,子進程死亡(https://stackoverflow.com/questions/284325/how-to-make-child- process-die-after-parent-exits/23401172#23401172) –
看起來我需要定義父母和子程序,讓子程序發送信號告訴父母停止所有子程序? –