私は、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 –
あなたのインデントが奇妙です –