Я нахожусь на 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. Так как больше шансов, что это сломает систему, чем будет успешным.