Pouvons-nous donc utiliser Forever Plus Startup Scripts pour résoudre les problèmes ci-dessus? La réponse est bien sûr oui, mais elle est un peu gênante, et le fonctionnaire manque à jamais de documents de configuration détaillés. J'ai également pris des détours lors de la configuration, donc je vais entrer dans les détails ci-dessous.
Remarque: L'environnement expérimental de cet article est Ubuntu Server 12.04 LTS X86_64, et la configuration sur CentOS est plus simple.
Au début, j'ai pensé à ajouter un début pour toujours xxx à /etc/rc.Local, mais j'ai trouvé que Ubuntu (comme les autres systèmes) n'est pas mauvais pour moi. La principale contradiction est que MongoDB peut s'exécuter en utilisant cette méthode, mais pour toujours. En désespoir de cause, je devrais le considérer du point de vue de /etc/init.d.
La prémisse est de faire une éternité en premier. La méthode est très simple. Exécutez simplement la commande suivante:
Installation de NPM pour toujours -g
Une fois l'installation terminée, utilisez un programme de nœuds simple pour le tester:
Test de début pour toujours.jsforever stop test.jsforever redémarrer le test.js
Tant que l'erreur n'est pas invitée, cela signifie que pour toujours, c'est utilisable, c'est-à-dire que les conditions de base à utiliser pour toujours pour ouvrir un projet de nœud en arrière-plan sont déjà remplies, et le reste est d'écrire un script de démarrage.
Le contenu de base du script est le suivant, grâce à l'auteur original pour son travail acharné:
#! / bin / bash ### Début des informations d'initiation # fournit: xiyoulib # requis-start: $ all # requis-stop: $ all # default-start: 2 3 4 5 # par défaut-stop: 0 1 6 # short-description: start daemon au démarrage # Description: Activer le service fourni par Daemon. ### find init info infit # chkconfig: 345 88 08 # Description. Node.jsdeamon = / node.js / xiyoulibnodeexpress / bin / www #here Vous devez remplir le fichier de script de démarrage de votre propre projet de nœud Log = / node.js / log / log #Optional, le répertoire de fichiers journal pid = / node.js / pid #requued contenu, utilisé pour enregistrer le numéro de processus de Terre #Specify the Node executable program installation directory here, mine is /usr/local/binexport NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules #Here is the path of the Node class library#The content below does not need to be modified node=nodeforever=forevercase "$1" in start) $forever start -l $LOG --pidFile $PID -a $ Deamon ;; STOP) $ pour toujours stop - pidfile $ pid $ Deamon ;; STOP) $ pour toujours stop --pidfile $ pid ;; Restartall) $ Forever Restartall --pidfile $ pid ;; Recharger | redémarrer) $ pour toujours redémarrer -l $ log - pidfile $ pid -a $ deamon ;; liste) $ pour toujours la liste ;; *) Echo "Utilisation: /etc.init.d/node {start | stop | redémarrer | recharger | stopall | restartall | list}" exit 1 ;; eSacVoici un rappel: il est préférable de créer un répertoire dans le répertoire racine du projet Node, tel que /node.js, puis de définir l'autorisation sur 754, ce qui peut éviter les problèmes causés par certains problèmes d'autorisation!
Étant donné que j'utilise le système Ubuntu Server, le service de démarrage MongoDB est également configuré et les instructions suivantes sont ajoutées à son script init.d:
# Requis-démarrage: $ tout # requis-stop: $ tout
Donc, lorsque je l'ajoute moi-même à l'avenir, le système provoquera une erreur. Donc, dans le script de démarrage du projet Node, j'ai ajouté la chaîne précédente des commentaires d'explication pour le système Ubuntu Server pour le configurer. S'il est sur CentOS, des problèmes similaires ne devraient pas se produire. Portez une attention particulière à cela!
C'est-à-dire les informations d'explication suivantes:
### Début des informations d'initiation # fournit: xiyoulib # requise-start: $ all # requis-stop: $ all # par défaut-démarrage: 2 3 4 5 # par défaut-stop: 0 1 6 # Short-Description: Démarrer le démon au démarrage # Description: Activer le service fourni par Daemon. ### INT INTO INTO INTO
Une fois le script modifié, utilisez la directive CHKConfig - list pour vérifier si le service que vous avez ajouté est efficace, c'est-à-dire que les 3 et 5 doivent être allumés pour s'autodéfenser.
Si 3 et 5 ne sont pas définis sur ON, veuillez exécuter CHKConfig --vel 35 [votre nom de service]. Le serveur Ubuntu peut signaler certains avertissements, mais tant que les 3 et 5 du service requis peuvent être modifiés, d'autres erreurs peuvent être ignorées (je pense que c'est la propre entreprise du système).
Une fois la configuration terminée, le projet de nœud peut être démarré sur Linux. Vous pouvez arrêter -R, essayez maintenant de voir si cela peut être démarré. Après le démarrage, vous pouvez accéder directement au numéro de port et au répertoire virtuel que vous définissez. Si vous le voulez, la tâche sera terminée!
Mais s'il est faux, vérifiez soigneusement certains scripts et apportez des modifications pertinentes en fonction de l'erreur. Après tout, je l'ai aussi essayé!