Redirecting the output of service in Ubuntu to Log files
Sophia Terry
I am on Ubuntu 16.04 and deployed a service in /etc/systemd/system.
The service file booster.service contains
[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.targetOne more file in the /etc/rsyslog.d named 25-booster.conf has the following contents
:syslogtag, isequal, "ubooster" /opt/tech/mybooster/logs/booster_server.log
& stopI am able to see the logs from the command journalctl -u booster.
But the logs are not getting redirected to the booster_server.log file.
I have gone through this link redirecting the systemd output,but as mentioned in the comments its not working on 16.04.
I have tried the option of changing to if $programname == ... but it didn't work.
The last comment in the accepted answer, where the user mentioned about changing the user to syslog. So I have changed both owner and group to syslog but even this is of no use.
Any comments ?
EDIT 1: I have also read that if systemd version is 236 or above, the log file absolute path can be provided directly to the StandardOutput and StandardError in .service file. But the systemd version in my system is 229 and many have cautioned of upgrading systemd until and unless a person has considerable experience of working on Linux. As there are more chances that it will break the system than being successful.
1 Answer
The answer is in the same link provide in the question but some of the users have cautioned using it. But it can be used as a temporary solution. If any body has a better solution please provide.