Usar eternamente para implementar el proyecto Node.js en Linux desde el inicio

  

La ejecución manual del proyecto Node en una computadora es simple, el nodo xx.js está listo y desea que el proyecto Node se ejecute en segundo plano, aunque no puede usar directamente el comando de nodo. Pero después de instalar el paquete forever, todavía es muy fácil. Sin embargo, si crea un proyecto Node en un servidor remoto, si no puede iniciarlo usted mismo, una vez que se reinicie el servidor, el administrador debe abrir el proyecto manualmente para que se ejecute.

Entonces, ¿puedes usar el script de inicio para siempre más para resolver el problema anterior? La respuesta es, por supuesto, afirmativa, pero es un poco complicada, y el funcionario de siempre carece de documentación detallada de configuración. También tomé algunos desvíos al configurar, como se detalla a continuación.

Nota: el entorno experimental de este artículo es Ubuntu Server 12.04 LTS x86_64, la configuración en CentOS es más simple

La primera, quiero intentar agregar una oración en /etc/rc.local Para comenzar xxx look, los resultados encontraron que Ubuntu (otros sistemas son los mismos) no es un ave, la principal contradicción es que mongodb puede funcionar de esta manera, para siempre no funcionará, pero en la desesperación, desde la perspectiva de /etc/init.d Pensemos en ello.

En primer lugar, gracias a este artículo y su autor, http://cnodejs.org/topic/5059ce39fd37ea6b2f07e1a3, ¡es realmente uno de los pocos materiales preciosos!

La premisa es hacer que siempre sea bueno, el método es muy simple, simplemente ejecute el siguiente comando:

 npm install forever -g 

Una vez completada la instalación, pruébela con un sencillo programa Node :

 iniciar siempre test.jsforever detener test.jsforever reiniciar test.js 

Siempre y cuando no se produzca un error, significa que siempre se puede usar, lo que significa usar eternamente para abrir un proyecto Node en segundo plano. Ya disponible, el resto es escribir un script de inicio.

El contenido básico de la secuencia de comandos es el siguiente, gracias al arduo trabajo del autor original:

 #! /bin /bash ### BEGIN INIT INFO # Proporciona: xiyoulib # Required-Start: $ all # Required -Stop: $ all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon en el momento de arranque # Description: Habilita el servicio proporcionado por el daemon. ### END INIT INFO # chkconfig: 345 88 08 # descripción: Forever for Node.jsDEAMON = /node.js /XiyouLibNodeExpress /bin /www # Aquí debe completar su propio archivo de script de inicio del proyecto Node LOG = /node.js /log /log #optional, log Directorio de archivos PID = /node.js /pid # Contenido requerido, utilizado para registrar el número de proceso de exportar para siempre PATH = $ PATH: /usr /local /bin # Especifique el directorio de instalación del directorio ejecutable del nodo aquí, el mío es /usr /local /binexport NODE_PATH = $ NODE_PATH: /usr /local /lib /node_modules #aquí está la ruta de la biblioteca de clases de nodos # El siguiente contenido no necesita ser modificado node = nodeforever = forevercase " $ 1 " in start) $ Siempre inicie -l $ LOG --pidFile $ PID -a $ DEAMON;; Stop) $ forever stop --pidFile $ PID $ DEAMON;; stopall) $ forever stopall --pidFile $ PID;; restartall) $ forever restartall --pidFile $ PID;; reload |
 Reinicie) $ forever reinicie -l $ LOG --pidFile $ PID -a $ DEAMON;; lista) $ forever list;; *) echo " Uso: /etc.init.d/node {inicio |
 Parada |
 Reiniciar |
 Recargar |
 Stopall |
 Restartall |
 List} " exit 1;; esac 

Aquí hay un recordatorio: es mejor crear un directorio para el proyecto Node en el directorio raíz, como /node.js, y luego establecer los permisos en 754, lo que evita algunos problemas de permisos. El problema causado!

Dado que se usa el sistema Ubuntu Server, también se configura el servicio de inicio de MongoDB, y se agrega la siguiente declaración al script de init.d: ​​

 # Required-Start: $ All # Required-Stop: $ all, por lo que el sistema generará un error al agregarlo más tarde, por lo que en el script de inicio del proyecto Node, agregué un comentario anterior al sistema Ubuntu Server. Si está en CentOS, No debería haber problemas similares, ¡así que presta especial atención a esto! 

Esta es la siguiente información:

 ### BEGIN INIT INFO # Proporciona: xiyoulib # Required-Start: $ all # Required-Stop: $ all # Default-Start: 2 3 4 5 # Default -Stop: 0 1 6 # Descripción breve: iniciar el demonio en el momento del arranque # Descripción: habilitar el servicio proporcionado por el demonio. ### FIN DE LA INFORMACIÓN DE INICIACIÓN Después de editar el script, use el comando chkconfig --list para verificar si el servicio que agregó es válido. Es decir, todos los 3 y 5 deben estar activados para habilitar el arranque. 

Si 3 y 5 no están activados, entonces ejecute chkconfig --level 35 [nombre de su servicio], Ubuntu Server puede informar alguna advertencia, pero siempre que pueda configurar el servicio requerido 3 , 5 se activa, se pueden ignorar otros errores (creo que esto es un asunto del sistema).

Una vez completada la configuración, puede realizar el inicio automático del proyecto Node en Linux. Puede usar shutdown -r ahora para intentar iniciarlo automáticamente. Después de iniciarlo, puede acceder directamente al número de puerto y al directorio virtual que estableció. Mamá, si quieres salir, ya has terminado!

Pero si no está bien, solo revise algunos scripts y luego haga los cambios relacionados de acuerdo con el error. Después de todo, ¡también lo probé!

Dirección original: http://blog.csdn.net/yuanguozhengjust/article/details/37512993, indique la fuente.

Copyright © Conocimiento de Windows All Rights Reserved