Пилоны и зомби-процессы - PullRequest
       33

Пилоны и зомби-процессы

0 голосов
/ 21 сентября 2011

Я пытаюсь написать приложение, которое позволит пользователю запускать длительные процессы вычислений (например, несколько часов). Для этого я использую функцию Python Popen(). Пока основной процесс Pylons работает нормально, все хорошо, но когда я перезапускаю процесс Pylons, он не отвечает ни на какие запросы, если после предыдущего запуска paster остались какие-либо процессы зомби.

Что может быть источником или решением этой проблемы?

Заранее спасибо, Иван.

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Чтобы избежать процессов зомби, ребенок должен сделать двойную вилку, чтобы отсоединиться от контролирующего процесса. Смотри http://en.wikipedia.org/wiki/Zombie_process

Итак, все, что вам нужно сделать, это снова заставить ваш дочерний процесс работать, при этом стараясь держать соответствующие дескрипторы файлов открытыми, чтобы вы все еще могли общаться.

0 голосов
/ 21 сентября 2011

Вам нужна какая-то передача сообщений.Это может быть сделано путем установки обработчика сигнала.В Python для этого есть модуль signal, а в Popen есть метод send_signal.

Возможно http://www.doughellmann.com/PyMOTW/subprocess/#signaling-between-processes вам тоже поможет.

...