考虑以下test-echo.service
:
[Unit]
Description=Testing journalling of stdout
[Service]
ExecStart=/bin/echo hello world
[Install]
WantedBy=multi-user.target
它的标准输出按预期出现在日志中:
$ sudo systemctl enable test-echo
$ sudo systemctl start test-echo
$ sudo journalctl -e -u test-echo
> ... systemd[1]: Started Testing journalling of stdout.
> ... echo[20178]: hello world
$ sudo systemctl stop test-echo
现在我User=ubuntu
在该[Service]
部分下添加ubuntu
一个现有的常规用户。
$ sudo systemctl daemon-reload
$ sudo systemctl start test-echo
$ sudo journalctl -e -u test-echo
> ... systemd[1]: Started Testing journalling of stdout.
请注意,日志中现在缺少回显消息。这是为什么?我该如何显示它?
我在 Ubuntu 16.04 上使用 systemd 229。
答案1
journald
目前无法在进程退出前不久对其输出进行归因,对于像 这样的非常短暂的进程尤其如此echo
。这是由于 如何从进程 中journald
获取某些信息(例如_SYSTEMD_UNIT
和字段) ,而这些信息在处理输出时可能不再存在。_COMM
/proc
您可以找到错误报告在 GitHub 上也在 Bugzilla 上。