Rei*_*ica 7 python linux cygwin process
代码的相关部分如下所示:
pids = []
for size in SIZES:
pids.append(os.spawnv(os.P_NOWAIT, RESIZECMD, [RESIZECMD, lotsOfOptions]))
# Wait for all spawned imagemagick processes to finish
while pids:
(pid, status) = os.waitpid(0, 0)
if pid:
pids.remove(pid)
Run Code Online (Sandbox Code Playgroud)
这应该做的是关闭所有进程,然后在继续之前等待每个进程完成.它的作用大部分是有效的,但有时会在下一部分崩溃(当它期望所有这些过程完成时).
这有什么问题吗?有没有更好的方法呢?
它必须处理的环境是使用Python 2.4的CentOS,但我正在使用Python 2.5测试Cygwin,因此可能是因为它在我的机器上失败但在Linux机器上运行(Linux机器非常慢,这个错误是罕见的,所以我无法在那里得到它.
启动子进程的推荐方法是使用子进程模块.
pipe = Popen(["program", "arg1", "arg2"])
pipe.wait()
Run Code Online (Sandbox Code Playgroud)