Я особенно заинтересован в том, чтобы посмотреть на выходные данные сервисов oneshot, которые работают по таймеру. --unit
Флаг близко, но это объединяющее все пробеги службы вместе. Самым очевидным способом, которым я могу придумать, является фильтрация по PID, но это заставляет меня беспокоиться о повторном использовании PID / услугах, которые разветвляются, и получение последнего PID довольно неудобно. Есть ли какой-то другой идентификатор, который соответствует одному запуску службы, который я мог бы использовать для фильтрации журналов?
РЕДАКТИРОВАТЬ: Я бы с радостью принял авторитетное «нет», если это реальный ответ.
источник
journalctl --user -u UNITFILE -f -o json-pretty
может быть полезным; вы ищетеMESSAGE
поля в частности. Я обнаружил, что вам также может понадобитьсяUSER_INVOCATION_ID
, а также к некоторым сообщениям не привязан идентификатор вызова, поэтому их нельзя отфильтровать с помощью этого механизма. Не уверен, почему, может быть, мои записи неправильно настроены ..Я не уверен, какая временная метка имеет больше смысла, но это работает для меня. Надеюсь, что есть лучший способ работы с метками времени,
systemctl show
чем в awk - не удалось понять, как управлять форматом меток времени.источник
systemctl show -p ActiveEnterTimestamp thermo.service | awk '{print $2 \" \" $3}'
" -fu thermo.service | меньшеsystemctl show -p ActiveEnterTimestamp --value $unit
, так что нет необходимости в дополнительных awkВы можете использовать флаг загрузки, чтобы получать только журналы из этой загрузки. например
источник
Это может помочь вам:
journalctl -u foo.service | хвост -n 2
или замените 2 ожидаемым количеством строк
journalctl -u foo.service --since = ' 2016-04-11 13:00:00 '
Вы также можете объединить их, чтобы сначала получить метку времени последнего запуска, а затем использовать эту метку времени с ключом --since.
источник
Вы можете использовать фильтры полей с Journalctl. Например
Получить список всех доступных полей, используя:
Один доступное поле
_PID
.Вы можете получить PID запущенного процесса, используя
pidof
илиsystemctl show --property MainPID <SERVICE_NAME>
Итак, вот как я могу получить логи текущего процесса Kubernetes Kubelet:
Теперь скажите мне, почему я Kubernetes так трудно установить :-(
источник
journalctl -r | grep -m1 foo.service
источник