2012-03-20 9 views
9

Sono uno sviluppatore di node.js. Uso Amazon ec2 per distribuire le mie app node.js.Quali sono i vantaggi e gli svantaggi dell'uso dello script upstart o dello script per sempre in un contesto di script node.js in esecuzione ??

voglio avere il mio servizio node.js in esecuzione in modo permanente - riavviato se non riesce per qualsiasi motivo.

Mi sono imbattuto in 2 strumenti. Forever e Upstart

È stato rilevato qualche vantaggi di utilizzare uno sopra l'altro?

C'è qualche altro strumento che è meglio?

+0

+1 Non so perché questa domanda sta diventando più amore! L'ho trovato molto utile. –

risposta

8

Upstart è un controller del servizio di sistema, simile a SysV Init e avvierà/interromperà/riavvierà essenzialmente qualsiasi servizio registrato, basato su Node.js o meno, e avvierà automaticamente i servizi all'avvio del sistema per tu. Ma Upstart è essenzialmente specifico per Ubuntu, e i servizi specifici di Upstart non verranno eseguiti su altre distribuzioni Linux.

Upstart ha un livello di compatibilità SysV Init che si potrebbe indirizzare, invece, per mantenere quanto più ampia di uno strato di compatibilità possibile.

sempre è un'applicazione Node.js che controlla e riavvia altre applicazioni Node.JS se necessario, e come definito dal suo JSON configurazione. Un sacco di opzioni e un controllo preciso sul servizio senza lo sforzo necessario per duplicarlo in uno script SysV Init personalizzato. Tuttavia, Forever non è un servizio di sistema, quindi se il server viene riavviato, dovrai riavviare manualmente gli script per sempre.

Oltre a ciò, se tutto ciò che serve è qualcosa che riavviare lo script se/quando si blocca, e non si cura su di esso automaticamente a partire dal avvio del sistema, tutto ciò che serve è uno script bash semplice come:

#!/bin/bash 
while true 
do 
    node ./myScript.js 
done 
+0

Cosa succede se alcuni processi di nodo sono gestiti da sempre e si desidera riavviarne uno? – Anatoliy

+0

Secondo la documentazione su [per sempre] (https://github.com/nodejitsu/forever), si specifica lo script che si desidera avviare/arrestare/riavviare come daemon, quindi è sufficiente elencare il suo nome. Non so cosa dovresti fare se due script hanno lo stesso identico nome. –

+0

Grazie per la spiegazione. Precedentemente era il numero di istanze per quanto ricordo. Entrambe le soluzioni non funzioneranno nel mondo reale :(Quindi, continuerò a usare upstart, è uno strumento fantastico – Anatoliy

5

Solo per correggere una dichiarazione fuorviante nella risposta accettata ... non è vero che upstart è una tecnologia solo per Ubuntu. Vedere:

https://serverfault.com/questions/291546/centos-6-and-upstart http://searchenterpriselinux.techtarget.com/tip/RHEL-6-ditches-System-V-init-for-Upstart-What-Linux-admins-need-to-know http://en.wikipedia.org/wiki/Upstart#Adoption

Con questo, penso che sia una soluzione molto più convincente.

+3

appena notato questo.RedHat sta abbandonando Upstart per SystemD, quindi penso che il mio punto sia. –

+1

Debian ha anche deciso di standardizzare su systemd (tutto in minuscolo, per favore) e sembra probabile - secondo le dichiarazioni di Shuttleworth - che Ubuntu seguirà l'esempio, post 14.04 – Guss

Problemi correlati