Назад | Перейти на главную страницу

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

Я хочу запустить приложение узла через 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?

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

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

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

ExecStart=sh -c '/usr/bin/node server | tee -a ../log.appname.com/appname.service.log'