У меня определено несколько сервисов systemd. Они записываются как на диск, так и в журнал systemd, который я могу отслеживать с помощью journalctl -n 0 -fu myservice
. Однако я заметил, что журналы, которые я просматриваю с помощью команды journalctl tail, часто на несколько минут отстают от журналов на диске. Я подтвердил, что это не связано с фактической конфигурацией ведения журнала, используемой демоном, так как когда я запускаю демон вручную и он выводит свои журналы на стандартный вывод на консоли, я сразу вижу журналы.
Как я могу увидеть вывод журнала из journalctl сразу после его создания службой? Приемлемо либо полное отсутствие буферизации, либо буферизация строки.
Может быть, это буферизованный канал между вашим демоном и systemd, используемый для ведения журнала? Возможно, это дубликат Выходные данные скрипта python, запущенного как юнит, вышли из строя, а оболочки кажутся незараженными где совет:
Добавление
sys.stdout.flush()
после написания илиPYTHONUNBUFFERED
окружающая среда решит эту проблему
Тот же совет есть Журнал systemd не показывает печать Python 3