2011-10-04 5 views
1

Exécutez un serveur http à l'aide de nodejs. Je veux également que le serveur s'exécute pour toujours, même lorsque mon ordinateur redémarre, je veux que le noeud s'exécute à nouveau au redémarrage. donc je créé un script pour mettre dans leExécutez nodejs pour toujours

/etc/init.d/ 

ici est le script

#! /bin/sh -e 
set -e 
PATH=/usr/local/bin/node:/bin:/usr/bin:/sbin:/usr/sbin 
DAEMON=/opt/node-v0.4.7/examples/app.js 
case "$1" in 
start) forever start $DAEMON ;; 
stop) forever stop $DAEMON ;; 
force-reload|restart) 
forever restart $DAEMON ;; 
*) echo "Usage: /etc/init.d/node {start|stop|restart|force-reload}" 
exit 1 ;; 
esac 
exit 0 

mais quand je lance

/etc/init.d/node 

je continue à avoir la même erreur en disant

/etc/init.d/node: 13: Syntax error: word unexpected (expecting ")")

pouvez-vous les gars voir l'erro r? Je suis sûr que c'est probablement une erreur de syntaxe facile, mais c'est un peu tard et je suis vraiment fatigué. merci pour l'aide

+6

Quel type de shell est/bin/sh? – aldem

+0

c'était le problème. Je ne sais pas pourquoi/bin/sh il devrait/bin/bash. merci d'avoir signalé l'erreur –

Répondre

0

Vous pouvez créer un service de démarrage dans Ubuntu (si vous l'utilisez).
Créer myapp.conf dans/etc/init et écrire quelque chose comme:

start on startup 
respawn 
exec node /path/to/your/script.js 

Ensuite, votre application va commencer après le redémarrage et vous pouvez le gérer via des commandes démarrage et d'arrêt.
Et regardez forever node.js module

+0

Est-il toujours logique d'utiliser pour toujours si vous définissez la config upstart à réapparaître? –

+0

Je pense que oui, parce que toujours le paquet est superviseur et peut redémarrer votre application node.js. – Stan

3

J'ai changé le tralala de:

#! /bin/sh -e

Pour:

#! /bin/bash

Et maintenant ce script fonctionne pour moi.