Отсутствие вывода файла журнала при запуске скрипта под экраном, с перенаправлением консоли (тройник)

У меня есть скрипт python, который напишет некоторые общие записи на консоль. Я перенаправил это в файл журнала, используя типичный python -u jbot.py | tee -a jbot.log python -u jbot.py | tee -a jbot.log . Это отлично работает, я получаю вывод консоли и вход в лог-файл. Однако при попытке запустить это под экраном:

screen python -u jbot.py | tee -a jbot.log

Я не получаю какой-либо вывод журнала в файл. Как только я отключился от screen , удалит ли консольный вывод для этого сеанса полностью, или есть способ, по которому у меня все еще есть вкладка logfile из stdout и stderr моего скрипта?

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

One Solution collect form web for “Отсутствие вывода файла журнала при запуске скрипта под экраном, с перенаправлением консоли (тройник)”

Вам нужно сделать что-то вроде этого:

 screen sh -c 'python -u jbot.py | tee -a jbot.log' 

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

Другим вариантом является использование встроенного журнала вывода на экране; см. параметр -L (также доступный внутри экрана через интерфейс пользователя).

  • Измените родительский процесс процесса?
  • Запуск `screen` через задание @reboot cron
  • Экраны умирают, хотя процесс все еще запущен
  • Как отправить нажатия клавиш перед интерактивной оболочкой для автоматизации входа в последовательный порт Linux с помощью экрана GNU?
  • Как предотвратить завершение работы экрана после завершения процесса
  • как изменить размер горизонтальной области экрана
  • Команда gnu screen для X
  • Как перейти к началу командной строки, когда я нахожусь внутри экрана?
  • отправка текстового ввода на отдельный экран
  • Использование cron для запуска процесса на терминале без использования экрана?
  • Как «экран» влияет на переменные среды?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.