我在 Ubuntu 16.04 LTS 中运行用户级服务。例如,我的 test.service 位于~/.config/systemd/user/test.service
.
我能够通过这样做来运行服务
systemctl --user start test.target
但是,当我尝试使用 读取它的日志时journalctl
,我收到了以下错误消息:
journalctl --user -u test.service
Hint: You are currently not seeing messages from other users and the system.
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
我如何使用journalctl
用户的特定单位?
在较旧的 systemd 版本上,您必须使用
journalctl --user --user-unit=SERVICENAME
(在较新的版本上journalctl --user -u SERVICENAME
可以正常工作)。但是,这仅在of部分的
Storage
指令设置为(而不是or )时才有效。编辑配置文件后重新启动,用户将能够看到日志。[Journal]
/etc/systemd/journald.conf
persistent
auto
volatile
更多信息: https ://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html
我无法使其与 the
--user
和其他此类选项一起使用。但是,当我journalctl
自己使用时,我可以看到数据。不过,它包括所有日志。我可以搜索我感兴趣的特定应用程序并查看该输出。为了找到最新的,我先到文件末尾,然后向后搜索:打到G最后(这是首都
G
)点击?并输入您的应用名称
这不太实用,但在我工作的设备(Jetson)上,这几乎是我发现让它工作的唯一方法。