我正在尝试学习基本的 systemd 用法,但遇到了用户服务单元令人困惑的问题。
当使用systemctl start some.service运行普通服务时,我可以通过运行sudo journalctl --unit some.service找到该服务的完整日志(包括它打印到 stdout / stderr 的内容,据我所知)。
考虑示例服务文件chatty.service:
[Service]
ExecStart=/usr/bin/echo "test from chatty.service"
Run Code Online (Sandbox Code Playgroud)
当我将此服务文件放在~/.config/systemd/user/chatty.service并使用systemctl --user start chatty.service运行它时,我无法在 journalctl 中找到发送到 stdout 的输出,无论是使用普通的journalctl还是使用journalctl - -用户。我只在两者中得到以下输出:
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.
Run Code Online (Sandbox Code Playgroud)
并且journalctl --unit chatty.service根本不返回任何内容(有或没有 --user 没有区别)。
如果我将相同的服务文件移动到/etc/systemd/system并使用sudo systemd start chatty.service运行它,那么当我运行sudo journalctl --unit chatty.service时,我会得到以下输出:
Jan 15 19:28:08 …
Run Code Online (Sandbox Code Playgroud) systemd ×1