Форум сайта python.su
апач настроен на обработку питон-скриптов как 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'))
Офлайн
Может писать в stderr, между прочим.
Офлайн
на данный момент проблему решил так
r = subprocess.Popen('/usr/local/bin/python3 start.pyw start', shell=True, stdout=open('log.txt', ‘w’), stdin=subprocess.PIPE)
но в лог валится весь вывод скрипта, включая меню и т.п.
обычный же лог все равно не работает
Офлайн