Уведомления

Группа в Telegram: @pythonsu

#1 Март 18, 2013 13:15:54

Игнат
От:
Зарегистрирован: 2010-10-02
Сообщения: 224
Репутация: +  0  -
Профиль   Отправить e-mail  

как запустить фоновую задачу через cgi?

Столкнулся с такой проблемой.
python3-скрипт запускается апачем как cgi и с помощью subprocess запускает фоновый процесс - другой питон-скрипт.
Но если закрыть страницу с первым скриптом, то умирает и второй.

Пробовал делать демона с помощью двух fork(), запускать через ‘at now’ - ничего не помогает.
Если запустить скрипт из консоли, то он запустит фоновый процесс, а сам завершит работу и никаких проблем. Но если запускать через cgi - то все фоновые умирают после закрытия страницы.

Как же из веба запустить демона чтобы не умирал?

вот что у меня сейчас есть: http://pastebin.com/eUqu1pPC



Отредактировано Игнат (Март 18, 2013 13:26:16)

Офлайн

#2 Март 19, 2013 02:10:38

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

как запустить фоновую задачу через cgi?

счаз проверить нету возможности, поэтому на вскидку:
вызов subprocess c аргументом close_fds=True

Если аргументу close_fds присвоено значение True, то все дескрипторы, исключая 0, 1 и 2 будут закрыты перед выполнением дочернего процесса (только для UNIX).
Данная опция полезна если в вызывающей программе присутствуют, например, открытые сокеты, а запустив процесс мы передадим ему дескрипторы родителя тем самым сделав этот сокет занятым обоими процессами и закрыть сокет можно будет только после того как завершит работу дочерний процесс

Ну и вообще можно поиграться с аргументами, бывало что помогает, поглядите тут



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Март 19, 2013 02:13:47)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version