Пытаетесь отправить вывод в файл журнала с помощью 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'