I am running user-level services in Ubuntu 16.04 LTS. For example, I have my test.service located at ~/.config/systemd/user/test.service
.
I was able to run the service by doing
systemctl --user start test.target
However, when I try to read its log using journalctl
, I got this error message:
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.
How can I use journalctl
for user's specific unit?
Best Answer
On older systemd versions, you'll have to use
journalctl --user --user-unit=SERVICENAME
(on newer versionsjournalctl --user -u SERVICENAME
will work fine).However, this only works if the
Storage
directive of the[Journal]
section of/etc/systemd/journald.conf
is set topersistent
(instead ofauto
orvolatile
). Reboot after editing the configuration file and the user will be able to see the journal.More information: https://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html