<分区> 分区>
我有以下 Python 代码
jobs = []
p = Process(target=self.verify_process, args=(vm_ha1, creds, run_cmd_ha1, ip_ha1))
jobs.append(p)
p.start()
p = Process(target=self.verify_process, args=(vm_ha2, creds, run_cmd_ha2, ip_ha2))
jobs.append(p)
p.start
p = Process(target=self.verify_process, args=(vm_client, creds, run_cmd_client, ip_client))
jobs.append(p)
p.start
for p in jobs:
p.join()
目标是一个小型 def 检查 VM 上的进程是否已完成,并将打印退出代码。
当它运行时,在第一个进程完成并写入其输出后出现错误
File "/usr/lib/python2.7/multiprocessing/process.py", line 144, in join
assert self._popen is not None, 'can only join a started process'
AssertionError: can only join a started process
当我四处寻找这个时,我发现了一些提到这个的地方。 其中大部分是因为他们都在使用 p.run() 并且应该使用 p.start()。
但我已经在使用 p.start()。
这是我第一次使用 Multiprocessing,所以我可能使用不当。
据我所知,所有 3 个进程都应该启动。
