将 Ubuntu 中的服务输出重定向到日志文件

将 Ubuntu 中的服务输出重定向到日志文件

我在 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都更改为,但即使这样也没有用。ownergroupsyslog

任何意见 ?

编辑 1:我还读到,如果版本为 236 或更高版本,则systemd可以将日志文件绝对路径直接提供给StandardOutput文件。但我的系统中版本是 229,许多人警告不要升级,除非一个人有丰富的 Linux 工作经验。因为升级破坏系统的可能性比成功的可能性更大。StandardError.servicesystemdsystemd

答案1

答案就在问题提供的同一个链接中,但有些用户警告不要使用它。但它可以用作临时解决方案。如果有人有更好的解决方案,请提供。

回答

相关内容