wake-up-neo.net

Node.js - Knotenserver kann nicht dauerhaft ausgeführt werden

Ich versuche, den Knotenserver mit dem Befehl forever auszuführen. 

npm install forever -g

Nach der Installation für immer versuche ich, mein Knotenskript mit dem folgenden Befehl auszuführen:

node_modules\.bin\forever start app.js

Unten ist meine Konsole:

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

Bitte helfen Sie mir, dieses Problem zu lösen!

23
S Singh

Es gibt hier kein Problem außer Warnungen für Konfigs, die Sie für immer deklarieren sollten. Wenn Sie die letzte Nachricht dort sehen, wird Ihnen mitgeteilt, dass Ihr Skript verarbeitet wurde. Führen Sie einfach forever list aus und Sie sollten sehen, dass Ihr Skript läuft.

Bei der Installation von npm über das yum-Repository (yum install npm) und der Installation für immer bin ich auf dasselbe Problem gestoßen, während ich Knoten und npm über Shell-Skripts installiere und dann für immer installiere. Es muss etwas mit den Formeln für das Paketinstallationsprogramm oder mit möglicherweise fehlenden Aliasnamen mit Flags mit dem Installationsprogramm zu tun haben, um diese Werte hinter der Szene zu setzen.

Das bedeutet nicht, dass es nicht funktioniert. Siehe unten. Ich habe eine JS-Datei mit Beispielcode von der Site des Knotens erstellt und manuell ausgeführt (ich habe die Firewall geleert, um den Port für die App vorübergehend zu öffnen, aber Sie brauchen das nicht):

[[email protected] ~]# vi example.js
[[email protected] ~]# apf -f
apf(23924): {glob} flushing & zeroing chain policies
apf(23924): {glob} firewall offline
[[email protected] ~]# node example.js 
Server running at http://127.0.0.1:1337/

Ich starte dann die App für immer:

^C[[email protected] ~]# 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

Jetzt überprüfe ich, ob meine App läuft:

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

Dies löste mein Problem:

forever start -c node [path/to/app]

"-c" bedeutet - Kommando ausführen. und dann einfach über nodejs laufen

Auf diese Weise erhalten Sie den Respawn standardmäßig von min. 1000ms Betriebszeit

Entnommen aus: https://github.com/nodejitsu/forever/issues/422 , von "Basarat"

2
Yonatan Ayalon

Stoppen Sie zuerst alle laufenden Apps:

forever stopall

verwenden Sie dann diesen Befehl. Es funktioniert für mich und löste mein Problem: 

forever -w ./bin/www

und Sie sollten dies in der package.json-Datei finden: 

"scripts": {
    "start": "node ./bin/www"
  }

Ich hoffe es hilft dir.

1
saghar.fadaei

Eine Sache, die auch dieselbe Art von Ausgabe erzeugt, die Anwendung jedoch nicht startet, ist, wenn forever nicht in die angegebene Protokolldatei schreiben kann. Ich hatte einen Fall, in dem die Protokolldatei zu groß geworden war und dies den Start des Prozesses verhinderte.

0
Rami

Ändern Sie zunächst Ihre package.json-Skripte wie

"scripts": {
      "start": "forever ./bin/www.js"
 }

starten Sie dann diesen Befehl auf der Linux-Konsole: Sudo npm start

für windows nur: npm start

0
Vahap Gençdal

Wenn Sie den Knoten js mit Express Framework verwenden, wird das Skript nicht verwendet:

forever start app.js

Stoppen Sie zuerst alle laufenden Apps:

forever stopall

Wenn dieses Express-Framework verwendet wird, muss es gestartet werden mit:

forever start ./bin/www
0
Sid Mhatre