2015-11-23 3 views
0

Мое приложение - рельсы и питон.пассажирская остановка убить сирот процесс

В рельсах я создаю новый поток и запускаю команду оболочки, которая выполняет скрипты python. Этот скрипт python (родительский процесс) быстро завершится, но до его выхода он будет вилять дочерний процесс, а дочерний процесс будет сиротским процессом после выхода родительского процесса.

Ситуация 1: Если я начну приложение по рельсам: rails s -d

Когда питон родительский процесс завершается и дочерний процесс питон будет: kill pid(./tmp/pids/server.pid)

Затем дочерний процесс будет нормально и не быть убитыми , Это то, чего я хочу.

Ситуация 2: Если я начинаю приложение пассажир: passenger start -e production -d

Когда питон выходит из родительского процесса и дочерний процесс питона будет: passenger stop; , то дочерний процесс будет убит.

Итак, я хочу знать, что в ситуации 2 ребенок-сиротный процесс не может быть убит? Кто-нибудь испытал это или знает, как его решить?

+0

Я считаю, это потому, что пассажир сделать мой питон скрипт и PassengerHelperAgent тот же групповой процесс id.so, когда пассажир останавливается, он убьет весь процесс, который совпадает с идентификатором группового процесса PassengerHelperAgent . [ссылка ссылки] (http://old.blog.phusion.nl/2012/09/21/the-right-way-to-deal-with-frozen-processes-on-unix/) , но я не знаю как предотвратить пассажира, чтобы не убить мой сценарий. – minnie

ответ

0

меня решить мою проблему перезагрузить приложение вместо перезагрузки пассажирской перезапуска команды приложения: пассажирская конфигурация рестарт-приложение [путь моего приложения]

Смежные вопросы