2013-02-12 27 views
13

Beim Start von Node.js mit Upstart kann der Zugriff auf Dateien in Node.js nicht ohne den vollständigen Pfad erfolgen. Ich brauche es, um das Arbeitsverzeichnis zu verwenden.Upstart node.js Arbeitsverzeichnis

start on startup 
stop on shutdown 

script 
     echo $$ > /var/run/mynodeapp.pid 
     exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1 
end script 

pre-start script 
     echo "Starting" >> /var/log/mynodeapp.sys.log 
end script 

pre-stop script 
     rm /var/run/mynodeapp.pid 
     echo "Stopping" >> /var/log/mynodeapp.sys.log 
end script 

Antwort

24

Die Lösung besteht darin, das Verzeichnis innerhalb des Skripts zu ändern. In meinem Fall ist der Benutzer mynodeapp und die Knotendateien befinden sich im Benutzerverzeichnis (/ home/mynodeapp /).

script 
     chdir /home/mynodeapp/ 
     echo $$ > /var/run/mynodeapp.pid 
     exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1 
end script 

ich noch herausfinden müssen, was $$ auf der Echo Linie bedeutet oder 2> & 1. Vielleicht mit diesem läuten könnte jemand, wenn sie wissen!

+2

Schauen Sie hier für, was $$ ist: http://StackOverflow.com/Questions/5163144/what-are-the-Special-Dollar-Sign-Shell-Variables – jbowes

+0

Brilliant thanks! :) –

+0

kein Problem. Sie können übrigens Ihre eigene Antwort akzeptieren. – jbowes