我在 Ubuntu 16.04 上部署了一个服务/etc/systemd/system
。服务文件booster.service
包含
[Unit]
Description = booster
After = network.target
[Service]
ExecStart =/opt/tech/mybooster/sbin/booster_server
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=booster
[Install]
WantedBy = multi-user.target
/etc/rsyslog.d
命名中的另一个文件25-booster.conf
包含以下内容
:syslogtag, isequal, "ubooster" /opt/tech/mybooster/logs/booster_server.log
& stop
我能够从命令中看到日志journalctl -u booster
。但日志没有重定向到文件booster_server.log
。
我已经浏览过此链接重定向 systemd 输出,但正如评论中提到的,它在 16.04 上不起作用。
我尝试过更改选项if $programname == ...
,但没有效果。
接受答案中的最后一条评论,用户提到将用户更改为。所以我将和syslog
都更改为,但即使这样也没有用。owner
group
syslog
任何意见 ?
编辑 1:我还读到,如果版本为 236 或更高版本,则systemd
可以将日志文件绝对路径直接提供给StandardOutput
文件。但我的系统中版本是 229,许多人警告不要升级,除非一个人有丰富的 Linux 工作经验。因为升级破坏系统的可能性比成功的可能性更大。StandardError
.service
systemd
systemd
答案1
答案就在问题提供的同一个链接中,但有些用户警告不要使用它。但它可以用作临时解决方案。如果有人有更好的解决方案,请提供。