2012-03-10 21 views
5

Ho impostato il mio server di recente e oggi ho dovuto riavviarlo ... poi ho realizzato tutte le mie app di Node che avevo in esecuzione weren ' sto correndo più. Uso il modulo Node Forever per mantenere attive le app, ma poi mi sono reso conto che devo ancora farle partire quando il mio server si riavvia o si spegne e si riavvia.Impossibile ottenere il mio script Upstart per eseguire Node.js e Forever quando il server viene riavviato

Ho cercato il modo migliore per farlo, ma quello che sto provando non sembra funzionare. Ho creato uno script Upstart nella mia cartella /etc/init/ sul mio server remoto Ubuntu Server 10.04LTS e ho provato a riavviarlo e non sembra che faccia nulla. Nulla viene inserito nell'elenco quando eseguo forever list.

Ecco il mio script Upstart corrente Stavo cercando fuori oggi:

#/etc/init/myapp.conf 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

script 

    exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js 
end script 

Io uso sempre in uno script nodo come trovo più facile per configurarlo come voglio. È confermato che lo script gira bene se lo faccio al di fuori dello script, c'è solo qualcosa di sbagliato nello script Upstart stesso. Sembra avere le stesse autorizzazioni di tutti gli altri script Upstart nella cartella /etc/init/.

Come nota aggiuntiva, ho esaminato quasi tutte le risposte che ho trovato qui su StackOverflow e che ho trovato insieme il copione che ho attualmente.

UPDATE:

Con risposta di Tom, ora ho provato:

#/etc/init/myapp.conf 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js 

ma non è ancora funzionante.

Quindi non so perché questo non è in esecuzione quando riavvio il mio server. Per favore aiuto!

+0

Perché usate per sempre a tutti? Eseguo il nodo eseguibile direttamente tramite Upstart e funziona e si riavvia perfettamente. –

+0

@hiteshjoshi Perché? Non era la risposta giusta, temo. – littlejim84

+0

Ho lo stesso problema .. sto usando questo riferimento https: // www.exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/ –

risposta

0

Hai provato a farlo senza le righe di script iniziali?

description "my server" 
author "name" 

start on (local-filesystems and net-device-up IFACE=eth0) 
stop on shutdown 

#respawn if you were not using forever 

exec sudo /usr/local/bin/node myapp.forever.js 

Fonte: http://caolanmcmahon.com/posts/deploying_node_js_with_upstart

+0

Hello @Tom. Ho provato quello che hai suggerito e non funziona ancora. Sto leggendo il tuo utile link ora ... L'uomo mi sta facendo impazzire! – littlejim84

2

Questa non è una messa a punto molto felice. Il modo in cui funziona upstart è che avvia il processo eseguendolo usando l'id processo per il comando start. Forever JS funziona in modo simile, probabilmente è ispirato da Upstart.

Quando si tenta di eseguire forever.js con upstart, il processo per sempre creato nello script Upstart viene chiuso immediatamente dopo l'avvio. Upstart conta sul fatto che il processo continua a funzionare.

Quando ho provato a correre per sempre usando upstart, mi sono ritrovato con cinque diversi processi per sempre perché upstart pensava che non fosse stato avviato per sempre, e ha ripreso cinque volte.

Problemi correlati