2012-03-10 31 views
5

He estado configurando mi servidor recientemente y hoy tuve que reiniciarlo ... entonces me di cuenta de que todas mis aplicaciones de Node que tenía corriendo no t corriendo más. Estoy usando el módulo Node Forever para mantener las aplicaciones en ejecución, pero luego me di cuenta de que todavía necesito que comiencen cuando mi servidor se reinicie o apague y vuelva a encenderse.No se puede obtener mi secuencia de comandos Upstart para ejecutar Node.js y Forever cuando el servidor se reinicia

He estado investigando la mejor manera de hacerlo, pero lo que intento no parece funcionar. He creado un script Upstart en mi carpeta /etc/init/ en mi servidor remoto Ubuntu Server 10.04LTS y he intentado reiniciar y parece que no hace nada. Nada aparece en la lista cuando ejecuto forever list.

Aquí es mi guión Upstart corriente que estaba tratando a cabo hoy en día:

#/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 

utilizo siempre en una secuencia de comandos de nodo, ya que resulta más fácil de configurarlo como quiero. Se confirma que la secuencia de comandos funciona bien si hago esto fuera del script, simplemente hay algo mal con el script Upstart en sí. Parece tener los mismos permisos que todos los otros scripts Upstart en la carpeta /etc/init/.

Como nota adicional, he examinado casi todas las respuestas que he podido encontrar aquí en StackOverflow, y así fue como reuní el guión que tengo actualmente.

ACTUALIZACIÓN:

con la respuesta de Tom, he intentado ahora:

#/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 

Pero todavía no está funcionando.

Así que no sé por qué esto no se está ejecutando cuando reinicio mi servidor. ¡Por favor ayuda!

+0

¿Por qué se utiliza siempre en absoluto? Ejecuto el ejecutable del nodo directamente a través de Upstart y funciona y se reinicia muy bien. –

+0

@hiteshjoshi ¿Por qué? No era la respuesta correcta, me temo. – littlejim84

+0

Tengo el mismo problema ... estoy usando esta referencia https: // www.exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/ –

Respuesta

0

¿Intentó hacerlo sin las líneas de script de inicio?

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 

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

+0

Hola @Tom. Probé con lo que sugeriste y todavía no funciona. Estoy leyendo su útil enlace ahora ... ¡Hombre, me está volviendo loco! – littlejim84

2

Ésta no es una configuración muy feliz. La manera en que el upstart funciona es que inicia su proceso ejecutándolo utilizando la identificación del proceso para el comando de inicio. Forever JS funciona de manera similar, probablemente esté inspirado en Upstart.

Cuando intenta ejecutar forever.js con advenedizo, el proceso para siempre que crea en su secuencia de comandos advenedizo se cierra inmediatamente después de comenzar. Upstart cuenta con que el proceso continúe ejecutándose.

Cuando traté de ejecutar para siempre usando advenedizo, terminé con cinco procesos diferentes para siempre porque el advenedizo pensó que no había podido comenzar para siempre, y lo reintentó cinco veces.

Cuestiones relacionadas