Темы, подпроцесс и зомби - PullRequest
0 голосов
/ 19 июля 2009

Мне нужно запустить несколько удаленных заданий в каждый момент времени, используя потоки и SSH. Поэтому я пишу:

def dojob(hostname):

    command = "echo Done"
    p = Popen(['ssh','%s@%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()

Код работает, но затопляет мою ОС зомби. Честно говоря, я полагал, что метод connect () заботится о дочернем процессе, ожидая его завершения. Где я не прав?

1 Ответ

1 голос
/ 19 июля 2009

Похоже, вы столкнулись с этой проблемой , касающейся pipe / ssh и popen (). Здесь есть анализ и разрешение здесь .

...