2013-02-12 19 views
13

Avvio di Node.js con Upstart, quando si tenta di accedere ai file in Node.js non è possibile accedervi senza utilizzare il percorso completo. Ne ho bisogno per usare la directory di lavoro.Upstart directory di lavoro node.js

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 

risposta

24

La soluzione è modificare la directory all'interno dello script. Nel mio caso, l'utente è mynodeapp e i file del nodo si trovano nella directory degli utenti (/ 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 

devo ancora scoprire che cosa significa $$ sulla linea di eco o 2> & 1. Forse qualcuno potrebbe carillon con questo se sanno!

+2

Dai un'occhiata a ciò che $$ è: http://stackoverflow.com/questions/5163144/what-are-the-special-dollar-sign-shell-variables – jbowes

+0

Grazie fantastici! :) –

+0

nessun problema. A proposito, puoi accettare la tua risposta. – jbowes