如何允许用户使用journalctl查看特定于用户的systemd服务日志?


15

我正在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用于用户的特定单位?

Answers:


10

在较旧的systemd版本上,您必须使用journalctl --user --user-unit=SERVICENAME(在较新的版本上journalctl --user -u SERVICENAME可以正常使用)。

但是,这仅Storage在的[Journal]部分的伪指令/etc/systemd/journald.conf设置为persistent(而不是autovolatile)时才有效。编辑配置文件后重新启动,用户将可以看到日志。

更多信息:https : //www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html


1
将用户添加到systemd-journal组是我需要的答案(来自该邮件列表链接)。
特拉维斯井

这在Ubuntu 17.10上对我有用,其中一个用户莫名其妙地无法查看其日志,而另一个用户可以。
elBradford

2
将用户添加到systemd-journal组将是一种解决方法,但是由于我的服务是用户服务,因此我认为日志不是一开始就生成的,因此允许我的用户查看所有其他日志不会无论如何都有所帮助。
elBradford
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.