Многопроцессорность Python и независимость дочерних процессов

В терминале python я запускаю команду, подобную следующей, чтобы запустить длительный дочерний процесс:

from multiprocessing.process import Process
Process(target=LONG_RUNNING_FUNCTION).start()

Эта команда возвращается, и я могу делать другие вещи в терминале python, но все, что печатает потомок, все еще печатается в моем сеансе терминала python.

Когда я выхожу из терминала (либо сexit или жеCTRL+D), команда выхода это зависает. Если я ударилCTRL+C во время этого зависания дочерний процесс завершается.

Если я убью процесс терминала Python вручную (через posixkill команда), дочерний процесс вместо этого становится осиротевшим и продолжает работать с его выходом, предположительно отброшенным.

Если я запускаю этот код сpython -c, он ждет, чтобы ребенок закончил, иCTRL+C убивает и родителя и ребенка.

Какие конфигурации запуска Python убивают детей, когда родители увольняются? В частности, если веб-сервер python-mod_wsgi-apache порождает дочерние процессы и затем перезапускается, убиваются ли эти дети?

[Кроме того, как правильно отделить дочерние процессы, порожденные от терминала? Есть ли способ более элегантный, чем следующий:Умышленно сделать сиротский процесс в Python ]

Обновить: подпроцессы Python, порожденныеmultiprocessing.Process веб-сервером, работающим под Apache,не убит при перезапуске apache.

Ответы на вопрос(1)

Ваш ответ на вопрос