node.js ewig nicht start-script
Habe ich eine node.js Skript auf meinem server laufen lassen will das ich ständig, auch nachdem ich logout bei SSH. Ich habe mich entschieden, für immer für diese.
Problem: Wenn ich versuche zu starten node.js Skript mit forever start app.js
, bekomme ich die folgende Fehlermeldung. Gibt es weitere Konfiguration erforderlich ist?
The "sys" module is now called "util". It should have a similar interface.
info: Forever processing file: app.js
{
"process": {
"pid": 24257,
"uid": 0,
"gid": 0,
"cwd": "/home/node/nodejs",
"execPath": "/usr/local/bin/node",
"version": "v0.6.2",
"argv": [
"node",
"/usr/local/bin/forever",
"start",
"app.js"
],
"memoryUsage": {
"rss": 13729792,
"heapTotal": 8367232,
"heapUsed": 5130572
}
},
"os": {
"loadavg": [
0.02734375,
0.0322265625,
0.0009765625
],
"uptime": 1474229.393550878
},
"trace": [
{
"column": 21,
"file": "/usr/local/lib/node_modules/forever/lib/forever/cli.js",
"function": "getOptions",
"line": 172,
"method": null,
"native": false
},
{
"column": 17,
"file": "/usr/local/lib/node_modules/forever/lib/forever/cli.js",
"function": "",
"line": 210,
"method": null,
"native": false
},
{
"column": 19,
"file": "/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js",
"function": "apply",
"line": 355,
"method": null,
"native": false
},
{
"column": 9,
"file": "/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js",
"function": "_every",
"line": 28,
"method": null,
"native": false
},
{
"column": 16,
"file": "/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js",
"function": "apply",
"line": 352,
"method": null,
"native": false
},
{
"column": 9,
"file": "/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js",
"function": "_every",
"line": 28,
"method": null,
"native": false
},
{
"column": 5,
"file": "Object].invoke (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js",
"function": "[object",
"line": 350,
"method": null,
"native": false
},
{
"column": 8,
"file": "Object].dispatch (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/cli.js",
"function": "[object",
"line": 67,
"method": null,
"native": false
},
{
"column": 21,
"file": "Object].start (/usr/local/lib/node_modules/forever/node_modules/flatiron/lib/flatiron/plugins/cli.js",
"function": "[object",
"line": 52,
"method": null,
"native": false
},
{
"column": 9,
"file": "/usr/local/lib/node_modules/forever/lib/forever/cli.js",
"function": null,
"line": 470,
"method": null,
"native": false
}
],
"stack": [
"TypeError: Cannot call method 'reset' of undefined",
" at getOptions (/usr/local/lib/node_modules/forever/lib/forever/cli.js:172:21)",
" at Object.<anonymous> (/usr/local/lib/node_modules/forever/lib/forever/cli.js:210:17)",
" at apply (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js:355:19)",
" at _every (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js:28:9)",
" at apply (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js:352:16)",
" at _every (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js:28:9)",
" at [object Object].invoke (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/router.js:350:5)",
" at [object Object].dispatch (/usr/local/lib/node_modules/forever/node_modules/flatiron/node_modules/director/lib/director/cli.js:67:8)",
" at [object Object].start (/usr/local/lib/node_modules/forever/node_modules/flatiron/lib/flatiron/plugins/cli.js:52:21)",
" at /usr/local/lib/node_modules/forever/lib/forever/cli.js:470:9"
],
"level": "error",
"message": "uncaughtException"
}
Zusätzliche Info
Beim installieren immer mit npm install forever -g
bekomme ich folgende Warnungen, Frage mich, ob seine relevant für das problem...
npm WARN eventemitter2@0.4.1 package.json: 'contributers' should probably be 'contributors'
npm WARN request@2.1.1 package.json: bugs['web'] should probably be bugs['url']
- Ich habe diesen Fehler auch. Möglicherweise ein Problem mit Knoten 0.6.3
- Ich bin mit Knoten 0.6.2
- Gut, ich habe genau das gleiche problem mit Knoten 4.12.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausführen Prozess im back-end
Zweck der Für immer zu halten, ist ein Kind-Prozess (z.B. Ihre node.js web-server) läuft kontinuierlich und automatisch wieder starten, wenn es unerwartet beendet wird. Es ist erwähnenswert, dass es andere tools geschrieben, um diese Aufgabe zu erfüllen, die in einer allgemeineren Art und Weise für ein Programm oder eine Programmiersprache:
Monit: http://mmonit.com/monit/
Upstart: http://upstart.ubuntu.com/
Daemontools: http://cr.yp.to/daemontools.html
Launchtool: http://people.debian.org/~enrico/launchtool.html
nohup ... > output.log &
, ist es möglich zu sehen, alle die Konsole.schreiben der Ausgänge?npm install forever
vi output.log
Sie erhalten alle Stoffe u ebenfalls ausgedruckt, wenn ein Fehler oder eine Warnung!!!node app.js
output.log
nohup
Skript läuft am hinteren Ende, der Grund, warum jedes Ding wird ausgedrucktoutput.log
screen
tun kann, was ich gerade gesagt habe, lassen Sie das Skript im hintergrund laufen, während ich mich Abmelden, aber immer noch zeigen alle Ausdrucke aus dem Skript in Echtzeit, wenn ich es sehen will, anstatt, Sie zu schreiben in eine log-Datei, die ich überprüfen ständig. Jedoch, wie kann ich das machen node.js automatisch neu, wenn Sie abgestürzt ist, und inscreen
können Sie sowohl die Anzeige der Ausgabe in Echtzeit und immer noch log in eine Datei?Ich habe das problem gelöst, es war Fehler im letzten release und Sie haben es nicht in die Produktion hochladen, so
installieren Sie direkt aus dem git:
use npm install git://github.com/nodejitsu/forever.git -g
details finden Sie in der Ausgabe:
https://github.com/nodejitsu/forever/issues/179
forever list
nicht scheinen, um eine Liste der gestarteten Prozesse, die durchforever start [app name]
Sind Sie auch dieses Problem Auftritt?Schauen Sie sich auch http://learnboost.github.com/cluster/ als alternative zu forever.js. Es hat viele andere nützliche Funktionen.
Können Sie auch verwenden, unix-Befehl 'Bildschirm' oder 'byobu' zu halten, die ssh-Sitzungen vom sterben.