Приветствую всех,
Я пытаюсь демонизировать скрипт python, который в настоящее время выполняется на переднем плане. Тем не менее, мне все еще нужно видеть вывод, который он в настоящий момент выдает на стандартный вывод.
Поэтому я использую следующий фрагмент кода, который генерирует уникальное имя файла в / tmp, а затем назначает sys.stdout этому новому файлу. Все последующие вызовы «print» затем перенаправляются в этот файл журнала.
import uuid
outfile = open('/tmp/outfile-' + str(uuid.uuid4()), 'w')
outfile.write("Log file for daemon script...\n")
sys.stdout=outfile
# Rest of script uses print statements to dump information into the /tmp file
.
.
.
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я tail -f
файл, созданный в / tmp, я не вижу никакого вывода. Однако после того, как я уничтожу свой процесс-демон, выходные данные будут видны в лог-файле / tmp, потому что python очищает данные файла.
Я хочу отслеживать файл журнала / tmp в режиме реального времени, поэтому было бы замечательно, если каким-то образом вывод можно сделать видимым в режиме реального времени.
Одним из решений, которое я попробовал, было использование небезопасного ввода-вывода, но это тоже не помогло.
Любая помощь будет принята с благодарностью!
Спасибо и всего наилучшего,
Warpcore