簡體   English   中英

node.js永遠無法啟動腳本

[英]node.js forever cannot start script

我的服務器上有一個node.js腳本,即使在我注銷SSH之后我也要連續運行。 我決定永遠用這個。

問題:當我嘗試使用forever start app.js啟動node.js腳本forever start app.js ,出現以下錯誤。 是否需要更多配置?

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

我已經解決了這個問題,它是上一個版本中的bug而且他們沒有上傳到生產中,所以直接從git安裝:

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

有關詳細信息,請參閱問題: https//github.com/nodejitsu/forever/issues/179

在后端運行進程

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

Forever的目的是讓子進程(例如你的node.js web服務器)連續運行,並在意外退出時自動重啟。 值得一提的是,還有其他工具可以用更通用的方式為任何程序或編程語言完成此任務:

Monit: http//mmonit.com/monit/
新貴: http//upstart.ubuntu.com/
Daemontools: http//cr.yp.to/daemontools.html
Launchtool: http ://people.debian.org/~enrico/launchtool.html

另請查看http://learnboost.github.com/cluster/作為forever.js的替代方案。 它還有許多其他有用的功能。

您還可以使用unix命令' screen '或' byobu '來防止ssh會話死亡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM