我使用 systemd 的用户级服务管理来运行很多东西。到目前为止,能够利用计时器、条件服务等已经很棒了,但最缺少的就是持久性日志。
我使用的是 Ubuntu 16.04。我可以通过查看服务状态systemctl --user status servicename.service
,但无法通过以下方式查看任何日志journalctl
:
$ journalctl --user
No journal files were found.
-- No entries --
我需要做些什么才能使用户级日志支持正常工作吗?
答案1
两件事情:
- Ubuntu systemd 日志条目默认情况下不是持久的。编辑
/etc/systemd/journald.conf
并设置Storage=persistent
以修复该部分。 - 很遗憾,在带有 systemd 239 的 Ubuntu 16.04 上,
journalctl --user --unit=
与journalctl --user-unit=
.虽然前者可能更直观,但后者可能就是您想要的。
答案2
我没有意识到我试图读取日志的用户是系统用户。 Systemd将系统帐户的用户服务日志定向到系统日志:https://wiki.archlinux.org/index.php/systemd/User#Reading_the_journal