%2C%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20upstart%20%D0%B4%D0%BB%D1%8F%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0.png)
У меня следующая конфигурация upstart:
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 99 5
#respawn is used to start the nodejs again, even if it fails.
env NODE_ENV=production
env PROJ=/home
script
cd $PROJ
cd htdocs
exec sudo /opt/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y_%m_%d_%I_%M").log
end script
Это добавляет (и создает, если он не существует) к динамическому файлу, который создается каждую минуту, любые сообщения STDOUT и STDERR. Теперь я хотел иметь настоящие папки, как в
/logs/2018/05/29/10_05.log
но изменив код на
exec /opt/bitnami/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y")/$(date +"%m")/$(date +"%d")/$(date +"%I_%M").log
не выдает ожидаемый вывод, потому что папка не существует. Я думал о добавлении элемента управления в скрипт, который проверяет, существует ли папка, и создает ее, если нет, но я ожидаю, что он будет запущен только один раз, во время выполнения скрипта, а не для каждого сообщения STDOUT.
Есть ли какое-то решение этой проблемы?
Спасибо