0
Мне нужно запустить несколько удаленных заданий каждый в определенный момент с помощью потоков и SSH. Поэтому я пишу:Темы, подпроцессы и зомби
def dojob(hostname):
command = "echo Done"
p = Popen(['ssh','%[email protected]%s' % (user, hostname), command], stdout=PIPE, shell=False)
output = p.communicate()[0].strip()
print output
[...]
fire_starter = [Timer(t, dojob, [y]) for t,y in zip(instant, hosts)]
for e in fire_starter:
e.start()
Код работает, но он наводняет мою ОС зомби. Честно говоря, я считал, что метод communication() заботится о дочернем процессе, ожидая его завершения. Где я ошибаюсь?