这个问题让我很困惑
我只想在 18 个不同的输入文件上运行 1 个命令,所以我把它写成了
while filenames or running:
while filenames and len(running) < N_CORES:
filename = filenames.pop(0)
print 'Submiting process for %s' % filename
cmd = COMMAND % dict(filename=filename, localdir=localdir)
p = subprocess.Popen(cmd, shell=True)
print 'running:', cmd
running.append((cmd, p))
i = 0
while i < len(running):
(cmd, p) = running[i]
ret = p.poll()
if ret is not None:
rep = open('Crux.report.%d' % (report_number), 'w')
rep.write('Command: %s' % cmd)
print localdir
print 'done!'
report_number += 1
running.remove((cmd, p))
else:
i += 1
time.sleep(1)
但是当我在 3 小时后运行它时,所有进程都进入了睡眠模式。
但是,如果我手动从终端调用命令(对于所有不同的文件),它们都正常。
任何帮助将不胜感激。