如何从systemctl状态服务查看完整日志?


346

我通过检查服务状态systemctl status service-name

默认情况下,我仅看到几行,因此添加-n50以查看更多行。

有时,我想从一开始就查看完整的日志。它可能有1000行。
现在,我使用它进行检查,-n10000但这看起来并不是一个很好的解决方案。

有没有类似less命令的选项来检查完整的systemd服务日志?


1
尽管接受的答案对我没有用,但我不知道该-n标志。-n99999对我来说,添加似乎是可以接受的解决方法。感谢您为我指出正确的方向:-)
tobixen

Answers:


488

只需使用journalctl命令,如下所示:

journalctl -u service-name.service

或者,仅查看当前引导的日志消息:

journalctl -u service-name.service -b

对于名为的事物<something>.service,您实际上可以使用<something>,例如:

journalctl -u service-name

但是对于其他种类的单元(套接字,目标,计时器等),则需要明确。

在以上命令中,-u标志是的缩写--unit,它指定您感兴趣的单元的名称。 -b是的缩写--boot,并将输出限制为仅当前引导,这样您就不会看到很多较旧的消息。有关更多信息,请参见journalctl手册页


28
附加--no-pager将打印完整的日志,因此您
无需

38
追加-e将在末尾启动日志,从而无需滚动,但无需事先打印整个日志。
timlyo

58
追加-f(日志)后将更新(日志)日志
Joe J

22
附加--help将使您看到所有可用的选项
Tzafrir

这些日志存储在磁盘上的某个位置吗?
viveksinghggits,

25

systemctl可以通过添加-l标志来包括其状态列表的完整输出,而不会被截断。

systemctl -l status service-name

-l:不要用省略号(...)截断条目

--no-pager 可以添加以避免在输出是交互式终端时调用寻呼机。


7
你能以某种方式明确答案吗?添加有关选项的一些解释,不要犹豫来格式化您的答案!
joH1

7
这个答案是错误的。输出保持截断状态。
布劳伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.