Entonces, ¿podemos usar scripts de inicio para siempre más para resolver los problemas anteriores? La respuesta es, por supuesto, sí, pero es un poco problemático, y el oficial para siempre carece de documentos de configuración detallados. También tomé algunos desvíos al configurar, así que entraré en detalles a continuación.
Nota: El entorno experimental de este artículo es Ubuntu Server 12.04 LTS x86_64, y la configuración en CentOS es más simple.
Al principio, pensé en agregar un inicio para siempre xxx a /etc/rc.local, pero descubrí que Ubuntu (igual que otros sistemas) no es malo para mí. La principal contradicción es que MongoDB puede ejecutarse utilizando este método, pero para siempre no. En desesperación, debería considerarlo desde la perspectiva de /etc/init.d.
La premisa es hacer para siempre primero. El método es muy simple. Simplemente ejecute el siguiente comando:
NPM instalación para siempre -g
Una vez que se complete la instalación, use un programa de nodo simple para probarlo:
Forever Start test.jsforever stop test.jsforever reiniciar test.js
Mientras no se solicite el error, significa que para siempre se puede usar, es decir, las condiciones básicas para usar para siempre para abrir un proyecto de nodo en el fondo ya se cumplen, y el resto es escribir un script de inicio.
El contenido básico del guión es el siguiente, gracias al autor original por su arduo trabajo:
#!/bin/bash ### Información de inicio de inicio# proporciona: xiyoulib# requerido-start: $ all# required-stop: $# All## predeterminado-start: 2 3 4 5#-parnante predeterminado: 0 1 6# Descripción corta: Daemon de inicio en la hora de arranque# Descripción: Enable servicio proporcionado por Daemon. ### Inic Inic Init# CHKCONFIG: 345 88 08# Descripción: para siempre para la hora de la descripción: Enable. Node.jsDeamon =/node.js/xiyoulibnodeexpress/bin/www #here necesita completar el archivo de script de inicio de su propio proyecto de nodo log =/node.js/log/log #optional, directorio de archivos log pid =/node.js/pid #contenido presentado, utilizado para registrar el número de proceso de la exportación de siempre. El directorio de instalación del programa ejecutable de nodo aquí, el mío es/usr/local/binexport node_path = $ node_path:/usr/local/lib/node_modules #here es la ruta de la biblioteca de clases #de la biblioteca de clases de nodo a continuación no necesita modificarse node = nodeforever = para siempre "$ 1" en inicio) $ para siempre $ log $ log - -pid file -pid --a pid; parar) $ forever stop - -pidfile $ pid $ Deamon ;; parar) $ forever stop - -pidfile $ pid ;; reinsartall) $ para siempre reinsartall - -pidfile $ pid ;; recargar | reiniciar) $ para siempre reiniciar -l $ log - -pidfile $ pid -a $ Deamon ;; lista) $ para siempre lista ;; *) echo "use: /etc.init.d/node {inicio | parar | reiniciar | recargar | stopall | reinSartall | list}" Salida;Aquí hay un recordatorio: es mejor crear un directorio en el directorio raíz para el proyecto de nodo, como /node.js, y luego establecer el permiso en 754, ¡lo que puede evitar los problemas causados por algunos problemas de permiso!
Dado que uso el sistema de servidor Ubuntu, el servicio de inicio de MongoDB también está configurado, y las siguientes declaraciones se agregan a su script init.d:
# Requerido-star: $ all# required-stop: $ all
Entonces, cuando lo agrego yo mismo en el futuro, el sistema provocará un error. Entonces, en el script de inicio del proyecto de nodo, agregué la cadena anterior de comentarios de explicación para el sistema de servidor Ubuntu para configurarlo. Si está en CentOS, no deben ocurrir problemas similares. ¡Presta especial atención a esto!
Es decir, la siguiente información de explicación:
### Información inicial de inicio# Proporciona: xiyoulib# requerido-start: $ all# required-stop: $ All## default-start: 2 3 4 5#-parada predeterminada: 0 1 6# Descripción corta: Inicio Daemon en el tiempo de arranque# Descripción: Habilitar el servicio proporcionado por Daemon. ### End Init Init Informs
Después de editar el script, use la directiva Chkconfig --list para verificar si el servicio que agregó es efectivo, es decir, los 3 y 5 deben estar activados para lograr un inicio propio.
Si no se establecen 3 y 5, ejecute Chkconfig --Level 35 [Nombre de su servicio] ON. El servidor Ubuntu puede informar algunas advertencias, pero mientras los 3 y 5 del servicio requerido se puedan cambiar a ON, se pueden ignorar otros errores (creo que este es el negocio propio del sistema).
Después de completar la configuración, el proyecto de nodo se puede iniciar en Linux. Puede cerrar -r ahora intente ver si se puede iniciar. Después de comenzar, puede acceder directamente al número de puerto y al directorio virtual que establece. Si lo quieres, ¡la tarea se hará!
Pero si está mal, verifique cuidadosamente algunos scripts y realice modificaciones relevantes basadas en el error. Después de todo, ¡también lo probé!