.%20Verwendung%20von%20Upstart%20zum%20Erstellen%20des%20Dienstes.png)
Ich habe die folgende Upstart-Konfiguration:
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
Dies hängt alle STDOUT- und STDERR-Meldungen an die dynamische Datei an, die jede Minute erstellt wird (und erstellt sie, wenn sie nicht existiert). Jetzt wollte ich echte Ordner haben, wie in
/logs/2018/05/29/10_05.log
aber den Code zu ändern
exec /opt/bitnami/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y")/$(date +"%m")/$(date +"%d")/$(date +"%I_%M").log
gibt nicht die erwartete Ausgabe, da der Ordner nicht existiert. Ich habe darüber nachgedacht, dem Skript ein Steuerelement hinzuzufügen, das prüft, ob der Ordner existiert oder nicht, und ihn erstellt, wenn nicht, aber ich erwarte, dass es nur einmal ausgeführt wird, wenn das Skript ausgeführt wird, und nicht bei jeder STDOUT-Nachricht.
Gibt es dafür eine Lösung?
Danke