node.js永远无法启动脚本

我在我的服务器上有一个node.js脚本,即使在我注销了SSH之后,我仍想继续运行它。 我决定永远使用这个。

问题:当我尝试使用forever start app.js启动node.js脚本forever start app.js ,出现以下错误。 是否有更多的configuration是必需的?

 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" } 

附加信息

当永远使用npm install forever -g ,我得到以下警告,不知道它是否与问题有关…

 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'] 

在后端运行进程

 $ nohup node simple-server.js > output.log & 

永远的目的是保持一个subprocess(如你的node.js web服务器)不断运行,并在意外退出时自动重启。 值得一提的是,还有其他一些工具可以为任何程序或编程语言以更通用的方式完成这项任务:

Monit: http : //mmonit.com/monit/
新贵: http : //upstart.ubuntu.com/
Daemontools: http : //cr.yp.to/daemontools.html
启动工具: http ://people.debian.org/~enrico/launchtool.html

我已经解决了这个问题,这是上一个版本中的错误,他们没有上传到生产环境,所以直接从git安装:

use npm install git://github.com/nodejitsu/forever.git -g

有关详细信息,请参阅以下问题: https : //github.com/nodejitsu/forever/issues/179

还可以查看http://learnboost.github.com/cluster/,以替代forever.js&#x3002; 它还有许多其他有用的function。

你也可以使用unix命令“ screen ”或“ byobu ”来防止ssh会话死亡。