Вывод сценария Python, работающего как единица, не работает, в то время как оболочки кажутся unnafected

Общие рекомендации состоят в том, чтобы использовать оконечный мультиплексор (например. tmux или screen) и выполненный копия внутри, так как это дает той много гибкости. Можно отсоединить/повторно прикрепить по мере необходимости, чтобы проверить, как операция продолжается.

Эти программы создают "виртуальные" (бездисплейные) терминалы, которые отображены на/взятие входе от "реального" терминала (консоль Linux, X эмуляторов терминала, соединение SSH...). Поскольку виртуальный терминал не затронут прерываниями в реальных терминалах (оконечный мультиплексор просто прекращает отображать вывод, когда он обнаруживает закрываемое устройство IO и продолжает хранить вывод в, он - внутренний буфер), приложения, работающие внутри, экранируются от SIGHUP. В качестве награды они обычно предлагают по крайней мере некоторые основные ультрасовременные текстом возможности работы с окнами.

Я не уверен в tmux (который активно разрабатывается), но GNU screen должен быть включен в стандартный репозиторий RHEL.

6
23.09.2017, 23:10
1 ответ

Буферизация Stdout, вероятно, из-за systemd redirect

Добавление sys.stdout.flush() после записи или окружения PYTHONUNBUFFERED решит эту проблему

См. также вопрос переполнения стека Буферизация вывода питона.

13
27.01.2020, 20:23

Теги

Похожие вопросы