如何在 journald 中查看错误消息

Tho*_*mas 19 systemd systemd-journald

我创建了一个故意除以零错误的程序。

如果我在命令行中运行它,它会返回:“浮点异常”

但是,如果我将它作为 systemd 服务运行,则看不到此错误消息。在我的 systemd 脚本中,我添加了: StandardError=journal

但是在使用journalctl时,错误信息无处可见。如何将此错误消息添加到使用 journalctl 查看的日志中?

小智 27

使用以下命令获取运行服务的所有错误journalctl

$ journalctl -p 3 -xb
Run Code Online (Sandbox Code Playgroud)

其中-p 3mean priority err-x提供额外的消息信息,以及-b自上次启动以来的意思

  • 如果您还想查看emerg、alert、crit和错误消息,请运行journalctl -p 0..3 -xb (2认同)

Dab*_*abi 1

默认情况下,systemd 单元的 stdout 和 stderr 会发送到 syslog。因此您可以在文件/var/log/messages/var/log/dmesg.

要更改它,您可以使用以下命令:

sudo journalctl -u [yourunit]
Run Code Online (Sandbox Code Playgroud)

其中 [yourunit] 是 systemd .service 名称。例如,要查看来自 yourapp.service 的消息,

sudo journalctl --unit=yourapp
Run Code Online (Sandbox Code Playgroud)

然后使用命令重新启动journalctl

sudo systemctl restart systemd-journald
Run Code Online (Sandbox Code Playgroud)

如果这对您不起作用,请将StandardOutput=syslog+console和添加StandardError=syslog+console到您的 systemd 脚本中并重新启动 systemctl。之后,您可以使用journalctl 访问设备的输出。

  • 嘘!你找错了树。提问者的程序首先不会打印有问题的消息。 (2认同)