web-dev-qa-db-fra.com

Node.js - Impossible d'exécuter le serveur de noeud à l'aide de toujours

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!

23
S Singh

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 ~]#
6
Mike S.

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"

2
Yonatan Ayalon

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.

1
saghar.fadaei

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.

0
Rami

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

0
Vahap Gençdal

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
0
Sid Mhatre