J'essaie d'exécuter un serveur de nœud à l'aide de la commande forever . J'ai installé pour toujours de manière globale à l'aide de:
npm install forever -g
Après l'installation permanente, j'essaie d'exécuter mon script de noeud à l'aide de la commande ci-dessous:
node_modules\.bin\forever start app.js
Ci-dessous ma console:
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up f
or at least 1000ms
info: Forever processing file: app.js
S'il vous plaît aidez-moi à résoudre ce problème!
Il n'y a aucun problème ici autre que les avertissements pour les configs vous recommande de toujours déclarer. Si vous voyez le dernier message, il vous dit que votre script a été traité. Il suffit de lancer forever list
et vous devriez voir votre script s'exécuter.
Je me suis heurté à la même chose lors de l’installation de npm via le référentiel yum (yum install npm
), puis d’une installation permanente, alors que lorsque j’installe noeud et npm via des scripts shell, puis une installation permanente, cela ne se produit pas. Cela doit avoir quelque chose à voir avec les formules du programme d'installation du paquet ou un alias potentiellement manquant avec des indicateurs avec le programme d'installation pour définir ces valeurs derrière la scène.
Ceux-là ne veulent pas dire que ça ne marche pas. Voir ci-dessous, j'ai créé un fichier js en utilisant un exemple de code du site du noeud et je l'ai exécuté manuellement (j'ai vidé le pare-feu pour ouvrir le port de l'application temporairement, mais vous n'en avez pas besoin):
[root@app1 ~]# vi example.js
[root@app1 ~]# apf -f
apf(23924): {glob} flushing & zeroing chain policies
apf(23924): {glob} firewall offline
[root@app1 ~]# node example.js
Server running at http://127.0.0.1:1337/
Je lance ensuite l'application en utilisant pour toujours:
^C[root@app1 ~]# forever start example.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: example.js
Maintenant, je vérifie si mon application est en cours d'exécution:
[root@app1 ~]# forever list
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] dan1 /usr/bin/node example.js 23976 23978 /root/.forever/dan1.log 0:0:0:27.320
[root@app1 ~]#
Cela a résolu mon problème:
forever start -c node [path/to/app]
"-c" signifie - Run commnad; et puis juste courir via nodejs
De cette façon, vous obtenez le Respawn par défaut de min. 1000ms de disponibilité
Extrait de: https://github.com/nodejitsu/forever/issues/422 , par "Basarat"
Tout d'abord, arrêtez toutes les applications en cours d'exécution:
forever stopall
puis utilisez cette commande. Cela fonctionne pour moi et a résolu mon problème:
forever -w ./bin/www
et vous devriez trouver ceci dans le fichier package.json:
"scripts": {
"start": "node ./bin/www"
}
J'espère que ça t'aide.
Une chose qui produit également le même type de sortie, mais ne démarre pas l'application, est si forever
est incapable d'écrire dans le fichier journal spécifié. J'ai eu un cas où le fichier journal était devenu trop gros et cela empêchait le processus de démarrer.
Commencez par changer vos scripts package.json comme
"scripts": {
"start": "forever ./bin/www.js"
}
que démarrer cette commande sur la console linux: Sudo npm start
pour windows just: npm start
Si vous utilisez le noeud js avec express framework, le script ne commencera pas à utiliser:
forever start app.js
Tout d'abord, arrêtez toutes les applications en cours d'exécution:
forever stopall
Lorsque ce framework Express est utilisé, il doit être démarré avec:
forever start ./bin/www