перенаправление в фоновом режиме

перенаправление в фоновом режиме

Я написал программу на Python, которая печатает какое-то сообщение. Я хочу, чтобы эта программа перешла в фоновый режим и напечатала свое сообщение в файл. Поэтому я написал на bash: python program > message &. Проблема: сообщение появляется (с cat или vi) только тогда, когда я прерываю программу. Кто-нибудь может объяснить мне, в чем проблема и есть ли простое решение?

решение1

Python использует полную буферизацию, когда его вывод не является tty.

Запустите программу с помощью python -u--, что сделает stdout и stderr небуферизованными в python3, а также stdin в python2.

Обратите внимание, что это не имеет ничего общего с программой, работающей в фоновом режиме, а связано с тем, что ее stdout не является tty.

решение2

Может ли Flush помочь вам здесь? Надеюсь, ссылки на другие сайты не проблема. см.https://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function

Связанный контент