с записью того, что программа выводит в stdout/stderr? stderr по умолчанию вообще съедается, stdout часто как будто тоже куда-то пропадает, не показывается в journalctl
Большой объём сообщений?
нет, небольшой. но я так понимаю, тот же stderr вообще не записывается?
Записывается. Journalctl оба потока перехватывает.
хм… тогда надо перепроверить.. кстати, а еще вопрос, а нет какого-то способа показать вывод именно с последнего запуска сервиса? а то там в этом журнале еще и не поймешь, что от какого запуска
Может твоё приложение криво буферузирует, говорят питон так любит делать 🤷♀️
unbuffer и stdbuf -o L это от этого?
Ммм ну вот именно с запуска нет, но можно journalctl -xeu unit.name Тогда он отмотает лог к последнему сообщению и вообще сообщения будут более эээ, другими, а не просто строчками.
это кстати дико неудобно, все в одну кучу
Что всё? То что я написал выдаст логи связанные с конкретным юнитом.
чаще всего (ну может быть только мне, не знаю), нужно смотреть логи/ошибку именно с последнего запуска юнита
И да. Есть ещё такая штука, как journal namespaces.
да, но не уверен насколько это работает с разными языками
просто грепни по started и выведи всё до конца?
это я так понимаю, все-таки больше для разделения по юнитам, а не по запускам
вот это не знал, кстати, надо разбираться, возможно буферы
простите а что значит другими? не вижу разницы
А зачем ты tail-у скармливаешь? Он и без этого скормит твоему пейджеру, при этом прыгнет в самый конец лога. А лог, обычно, выглядит так, с этими ключами. Там где старты, завершения, вот такие красивые штуки.
tail старая привычка обрезать n строк не смогу вспомнить флаг для этого у journalctl а за подсказку спасибо
А не нужно тут строки резать. Он всё равно в пейджере открывает... Ещё можно ключик -f и это будет аналогично tail -f
я просто хотел уместить два разных выхлопа в одном скриен
Обсуждают сегодня