2016-07-02 5 views
0

nodejsサーバーで永遠にアプリケーションを実行したいと思っています。しかし、pm2foreverでは動作しないようです。Nodejs + expressjs - pm2と永遠に動作しないのですか?

私は手動でアプリを起動した場合:

$ npm start 

> [email protected] start /var/www/path/to/myapp 
> node ./bin/www 

私は成功した私のブラウザでアプリを見ることができます。

しかしPM2と:

$ pm2 start /var/www/path/to/myapp/app.js 

[PM2] Applying action restartProcessId on app [app](ids: 0) 
[PM2] [app](0) ✓ 
[PM2] Process successfully started 
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory  │ watching │ 
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤ 
│ app  │ 0 │ fork │ 29210 │ online │ 0  │ 0s  │ 12.383 MB │ disabled │ 
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘ 

私もこれを試してみました:

$ cd /var/www/path/to/myapp 
$ pm2 start app.js 

それはアプリがオンラインであることを述べています。私は私のブラウザでアプリにアクセスしようとすると、しかし:http://127.0.0.1:3000/

私はこのエラーを取得する:永遠と

This webpage is not available

ERR_CONNECTION_REFUSED

$ sudo forever start app.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: app.js 

しかし、まったく運。

私が逃したアイデアはありますか?

EDIT:package.jsonで

{ 
    "name": "iot", 
    "version": "1.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "bcrypt": "^0.8.7", 
    "body-parser": "~1.15.1", 
    "connect-mongo": "^1.2.1", 
    "cookie-parser": "~1.4.3", 
    "debug": "~2.2.0", 
    "express": "~4.14.0", 
    "express-session": "^1.13.0", 
    "hat": "0.0.3", 
    "rand-token": "^0.2.1", 
    "method-override": "^2.3.6", 
    "mongoose": "^4.5.1", 
    "morgan": "~1.7.0", 
    "pug": "~2.0.0-beta3", 
    "serve-favicon": "~2.3.0" 
    } 
} 

私は"scripts"を削除し、npm updateを実行した場合:

{ 
    "name": "iot", 
    "version": "1.0.0", 
    "private": true, 
    "dependencies": { 
    "bcrypt": "^0.8.7", 
    "body-parser": "~1.15.1", 
    "connect-mongo": "^1.2.1", 
    "cookie-parser": "~1.4.3", 
    "debug": "~2.2.0", 
    "express": "~4.14.0", 
    "express-session": "^1.13.0", 
    "hat": "0.0.3", 
    "rand-token": "^0.2.1", 
    "method-override": "^2.3.6", 
    "mongoose": "^4.5.1", 
    "morgan": "~1.7.0", 
    "pug": "~2.0.0-beta3", 
    "serve-favicon": "~2.3.0" 
    } 
} 

それから私は、手動で再びアプリを起動するが、エラーが出ます:

$ npm start 
npm ERR! Linux 3.13.0-76-generic 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" 
npm ERR! node v5.10.1 
npm ERR! npm v3.8.3 

npm ERR! missing script: start 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR!  <https://github.com/npm/npm/issues> 
+0

'package.json'の' scripts.start'の本文は何ですか? – Nonemoticoner

+0

@Nonemoticoner上記の私の編集をご覧ください。ありがとう。 'scripts.start'とは何ですか? – laukok

+0

私は 'start'スクリプトを意味しました。過度にそれを申し訳ありません。うーん、あなたはディレクトリのためのノードを始めるが、foreverとpm2を使うときは特定のファイルから始める。 Dunno、しかしそれは原因かもしれない。 – Nonemoticoner

答えて

0

問題は、express-generator私は私のアプリプロジェクトを生成するために使用することによって引き起こされます!

httpを実行するbinフォルダがあります。だから私はcd binにしてpm2 start wwwする必要があります。

+1

私はあなたを1つのコマンドに絞ることができると思います:pm2 start bin/www(cd'ingなし) –

関連する問題