0
私は現在、サブプロセスとマルチプロセッシングでPythonからシリアルシェルコマンドを起動しています。ここでコードが本物ではありませんが、似た:サブプロセスとマルチプロセッシングでPythonから "shell"コマンドを実行
def fakeFunc(cmd):
print("the pid "+str(os.getpid())+"begin", end=":")
process=Popen(cmd, stdout=PIPE, shell=True, stderr=STDOUT)
for line in iter(process.stdout.readline,b''):
line_str=line.decode(sys.stdout.encoding)
##### analyse line_str######
with Pool() as pool:
cmds=['mkdir -p /home/jeff/workspace/zebu/compile/vdv && cd /home/jeff/workspace/zebu/compile/vdv && compile', 'mkdir -p /home/jeff/workspace/zebu/compile/vdr && cd /home/jeff/workspace/zebu/compile/vdr && compile', 'mkdir -p /home/jeff/workspace/zebu/compile/rdv && cd /home/jeff/workspace/zebu/compile/rdv && compile']
pool.map_async(fakeFunc, cmds)
pool.close()
pool.join()
CMDSで最後のものだけが実行されているようだ、他の三つのものがprint("the pid "+str(os.getpid())+"begin", end=":")
後、関数の外にジャンプします。任意のヘルプが評価されています
ご協力いただきありがとうございます。 – hyperion007