Эта проблема заставляет меня путатьСмешение на subprocess.Popen
Я просто хочу, чтобы запустить команду 1 на 18 различных входных файлов, так что я написал это как
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 часов весь процесс переходит в спящий режим.
Но если я вызываю команду с терминала вручную (для всех разных файлов), все они были Ок.
Любая помощь была бы оценена.
будет интересно узнать немного больше о процессе называют: как сделайте 'cmd' в конце концов выглядеть? генерировать вывод? требуют ввода? Это работает, если вы только начали 1 процесс? –
@LotharKrause команда cmd запускает другую командную базу (в моем случае я запустил программу, которая называется Crux). Да для одного процесса было нормально, но для 7 одновременных процессов я не знаю, почему он был заморожен. – khikho