Как экранировать имя программы в журналеctl
Моя система вышла из строя, и я пытаюсь определить, что произошло, просматривая журналы. Я хочу отфильтровать журналы различных программ, вызвавших ошибки. Для этого я попробовал:
my_username@pop-os:~$ journalctl -u pop-os\ kernel
Invalid unit name "pop-os kernel" escaped as "pop-os\x20kernel" (maybe you should use systemd-escape?).
-- No entries --
Как мне найтиpop-os kernel
правильно?
1 ответ
The -u
Опция указывает имя модуля systemd , а не имя программы. Например,-u named
покажет все сообщения отnamed.service
независимо от того, каким названием программы они отмечены. Если вы не знаете соответствующую единицу измерения (или если ее нет), используйте-t
вместо этого вариант.
Кроме того, когда вы видите такие строки, какDec 28 14:38:06 pop-os kernel:
, тогда имя программы простоkernel
, нетpop-os kernel
– поле, следующее за датой, представляет собой имя хоста системы , а не часть имени программы. Таким образом, правильный поисковый запрос будет-t kernel
.
(Но если вы пытаетесь использовать журналctl в качестве замены dmesg, лучше используйте команду-k
возможность получить все сообщения, полученные из буфера ядра.)