Я нахожусь на 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: Я также читал, что если версия systemd 236 или выше, абсолютный путь файла журнала может быть предоставлен непосредственно к StandardOutput и StandardError в файле .service . Но версия systemd в моей системе - 229, и многие предупреждают об обновлении systemd до тех пор, пока у человека не будет значительного опыта работы с Linux. Так как больше шансов, что это сломает систему, чем будет успешным.
