Пытаетесь отправить вывод в файл журнала с помощью tee, но файл журнала не создается?

Я хочу запустить приложение узла через systemd и его вывод идет как в стандартный вывод, так и в файл журнала. Приложение узла находится в папке с именем www/www.appname.com и я хочу иметь файл журнала в www/log.appname.com, У меня есть следующий сервис servicename определены:

[Service]
ExecStart=/usr/bin/node server | tee -a ../log.appname.com/appname.service.log
KillMode=process
Restart=always
RestartSec=20
WorkingDirectory=/home/username/www/www.appname.com

[Install]
WantedBy=default.target

Но когда я запускаю свой сервис, например,

systemctl --user restart servicename

Тогда папка www/log.appname.com остается пустым, поэтому, возможно, что-то не так с именем пути, которое я использую в tee?

1 ответ

Решение

Командные строки оболочки напрямую не поддерживаются. Если нужно использовать командные строки оболочки, они должны быть явно переданы какой-либо реализации оболочки. Пример:

ExecStart = sh -c 'dmesg | Туалет'

Так что попробуйте что-то вроде

ExecStart=sh -c '/usr/bin/node server | tee -a ../log.appname.com/appname.service.log'
Другие вопросы по тегам