Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 30, 2011 21:18:41

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

проблема с запуском питона в фоне

апач настроен на обработку питон-скриптов как cgi

отдельный скрипт с веб-интерфейсом делает следующее:

r = subprocess.Popen('/usr/local/bin/python3 start.pyw start', shell=True,
stdout=subprocess.PIPE, stdin=subprocess.PIPE)

при этом весь вывод скрипта скрыт и в текстовый лог ничего не пишется

если убрать “stdout=subprocess.PIPE, stdin=subprocess.PIPE” - вывод валится в страницу запустившего его скрипта и текстовый лог пишется

если запустить скрипт “start.pyw start” в консоли - текстовый лог тоже пишется

если запустить start.pyw?start из браузера - все тоже ОК

вопрос - что такого может делать subprocess.Popen, что запущенный им скрипт не пишет логи в файл?

код записи в файл:

from threading import Lock
lock = Lock()

with lock:
with open('log.txt', 'ab') as f:
f.write(bytearray(msg_plain, 'utf-8'))



Офлайн

#2 Июнь 30, 2011 22:26:14

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

проблема с запуском питона в фоне

Может писать в stderr, между прочим.



Офлайн

#3 Июль 1, 2011 08:55:55

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

проблема с запуском питона в фоне

на данный момент проблему решил так

r = subprocess.Popen('/usr/local/bin/python3 start.pyw start', shell=True, stdout=open('log.txt', ‘w’), stdin=subprocess.PIPE)

но в лог валится весь вывод скрипта, включая меню и т.п.
обычный же лог все равно не работает



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version