我是一個嘗試使用fork多叉進程的python新手。我想要做的是在少數主機上運行命令。我可以使用下面的代碼,但是我也想停止執行,如果有任何孩子無法運行命令或命令本身失敗。os.fork退出腳本如果孩子無法運行命令
def runCommand(host,comp):
if os.system("ssh "+host+" 'somecommand'") != 0:
print "somecommand failed on "+host+" for "+comp
sys.exit(-1)
def runMulti():
children = []
for comp,host in conHosts.iteritems():
pid = os.fork()
if pid:
children.append(pid)
else:
sleep(5)
runCommand(host,comp)
os._exit(0)
for i, child in enumerate(children):
os.waitpid(child, 0)
如果代碼工作,那麼爲什麼要求存在我創建了一個臨時文件,? –
這可能會更好的代碼review.se –
您的縮進是奇怪的 –