Форум сайта python.su
Зачем плодить одинаковые посты?
Офлайн
Всем привет. Можно такой вопрос: если демон пораждает дочернего демона, то как корректно, по завершению задачи, выйти из дочернего демона?
Офлайн
По завершению дочернего - просто выйти. По sys.exit, например.
По завершению главного - послать сигнал дочерним и подождать из завершения. Через os.wait, например
Офлайн
Андрей СветловЕсли выхожу через sys.exit, то зомби-процес висит :(
По завершению дочернего - просто выйти. По sys.exit, например.
По завершению главного - послать сигнал дочерним и подождать из завершения. Через os.wait, например
Офлайн
Если ждать через os.wait (или как там ты его запускаешь - для subprocess немногое меняется) - зомби благополучно помирает
Отредактировано (Июнь 7, 2008 00:46:20)
Офлайн
Если процесс работает уже как демон и в нем я пытаюсь создать еще один демон следующим образом:
def clientDaemonize (client):
if (os.fork () == 0):
client.send (“test string”)
time.sleep (20)
s = client.recv (1024)
print s
client.close
os._exit (0)
else:
os.wait ()
sockVar = socket (AF_INET, SOCK_STREAM)
sockVar.bind ((“”, tcpPort))
sockVar.listen (tcpConCount)
while 1:
client, addr = sockVar.accept ()
clientDaemonize (client)
Тогда рождается только 1 дочерний демон от первого подключившегося клиента, а все остальные клиенты просто ждут :(
Офлайн
Все дело в os.wait () - родительский процесс начинает ждать, когда оставновится дочерний.
И возврат в цикл, в котором создаются подключения - не выполняется.
Отредактировано (Июнь 9, 2008 13:42:33)
Офлайн
shizaА как тогда организовать “нормальное рождение” дочерних демонов и завершение их? Буду очень благодарен за пример.
Все дело в os.wait () - родительский процесс начинает ждать, когда оставновится дочерний.
И возврат в цикл, в котором создаются подключения - не выполняется.
Офлайн
Всю ветку не осилил прочитать, поэтому отвечаю по сообшениям #26, #28
Клади PID детей в массив, и при завершении работы в цикле делай waitpid для всех детей из этого массива.
Само собой - с детьми надо как-то договорится, что пора завершаться. Если они конечно по сценарию сами не дохнут %)
Отредактировано (Июнь 10, 2008 11:38:25)
Офлайн
Ужас какой ;)
Офлайн