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

У меня есть скрипт 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 (также доступный внутри экрана через интерфейс пользователя).

  • nohup vs. Screen
  • Есть ли такая программа, как tmux или экран, но только для прикрепления или отсоединения сеанса
  • Чтение вывода в `screen` извне
  • Как сохранить вывод отдельного экрана со сценарием?
  • Что произойдет с сеансом сеанса по ssh, когда соединение потеряно?
  • Как отправить вывод команды в буфер режима копирования экрана GNU
  • Экран отключает начало длинной команды при доступе через историю bash
  • Экран: список Windows в сеансе (неинтерактивный)
  • awk или sed для соответствия регулярному выражению в определенной строке, выход true, если успех, false, иначе
  • Tmux: эквивалентная команда для отображения -d -m -S session_name
  • Отсоедините все остальные терминалы, кроме текущего, от сеанса tmux
  • Экран GNU: эквивалент соответствия в tmux
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.