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