Nohup и Python -u: он все еще не регистрирует данные в реальном времени

При запуске процесса Python, в фоновом режиме, с

nohup python myscript.py > test.log 2>&1 < /dev/null &

проблема в том, чтоstdout буферизируется: данныене написано в режиме реального времениtest.log, Общее решениеЭта проблема это кпериодически промывать сsys.stdout.flush()или даже лучше, как предложеноэтим ответом, использоватьpython -u :

nohup python -u myscript.py > test.log 2>&1 < /dev/null &

Но этого недостаточно, Я заметил, что это работало в течение нескольких часов, а затем перестало работать,то есть через несколько часовtest.log больше не пишется в реальном времени, даже если я использовалnohup python -u ....

1)Это как воспроизвести проблему (У меня есть стандартный Debian Jessie). Запустите этот файл:

import time
import datetime
while True:
    print datetime.datetime.now()
    time.sleep(60)

сnohup python -u myscript.py > test.log 2>&1 < /dev/null &, Файл журнала будет обновлен в течение нескольких часов, а затем через 3 или 4 часа,ничего такого больше.

2)Как решить эту проблемубез необходимости вставлятьstdout.flush() каждые 2 строки в коде (некрасивое решение)?

Ответы на вопрос(2)

Ваш ответ на вопрос