2017-09-13 14 views
0

私は通常、アプリケーションを停止するためにpm2 stopを実行します。PM2の削除後にNode.jsアプリを再起動できません

しかし、自分のアプリでpm2の削除を試してもう一度やり直すと、もう動作しないようです。

これは、取得したpm2エラーログです。コードが変更されていないので、突然のシャットダウンによるエラーECONNRESETのエラーが考えられますか?

また、ps -efpm2 killを使ってpm2とmongodのpidを殺してしまい、mongodを無駄に再起動しようとしました。私たちがコメントしたようstopwords.js:11:19ため

Error: Invalid mongodb uri. Must begin with "mongodb://" 
    Received: NaN 
    at muri (/home/ubuntu/portal/node_modules/muri/lib/index.js:28:11) 
    at NativeConnection.Connection.openUri (/home/ubuntu/portal/node_modules/mongoose/lib/connection.js:713:18) 
    at Mongoose.createConnection (/home/ubuntu/portal/node_modules/mongoose/lib/index.js:198:17) 
    at Object.<anonymous> (/home/ubuntu/portal/models/stopwords.js:11:19) 
    at Module._compile (module.js:573:30) 
    at Object.Module._extensions..js (module.js:584:10) 
    at Module.load (module.js:507:32) 
    at tryModuleLoad (module.js:470:12) 
    at Function.Module._load (module.js:462:3) 
    at Module.require (module.js:517:17) 
    at require (internal/module.js:11:18) 
    at Object.<anonymous> (/home/ubuntu/portal/helpers/database/helper_mongodb.js:2:19) 
    at Module._compile (module.js:573:30) 
    at Object.Module._extensions..js (module.js:584:10) 
    at Module.load (module.js:507:32) 
    at tryModuleLoad (module.js:470:12) 
    at Function.Module._load (module.js:462:3) 
    at Module.require (module.js:517:17) 
    at require (internal/module.js:11:18) 
    at Object.<anonymous> (/home/ubuntu/portal/controllers/inf_controller.js:2:19) 
    at Module._compile (module.js:573:30) 
    at Object.Module._extensions..js (module.js:584:10) 

コードは

let db = mongoose.createConnection(process.env.MONGODB_URI + process.env.MONGODB_HELPER_DB, { useMongoClient: true }) 
+0

私がprocess.env.MONGODB_URIから読み込んでいる環境変数が今、未定義を返すことを知りました。ここでかなり失われたのはなぜでしょうか?pm2の削除を使用した後になるでしょう –

+0

'node app.js'を実行しても動作しません'pm2 start app.js --env production'または' pm2 start app.js'で始まる –

+0

設定ファイルを作成する必要があります –

答えて

0

あり、そしてあなたが行ったように、私も自分のexpress.jsアプリケーションを実行するためにPM2 +イサキを使用して、私の問題を解決しました。質問を閉じるための解決方法をここで説明しようとします。

開始し、別のアプリで、トラブル なしPM2を停止する方法は、私は私のノードのアプリを構成し エコシステムファイルとあった。(CentOSのapacheの)

私のエコシステムファイル

-bash-4.2$ pm2 ecosystem 
File /var/www/vhosts/domain.com/ecosystem.config.js 
[...] 
-bash-4.2$ cat ecosystem.config.js 
module.exports = { 
    /** 
    * Application configuration section 
    * http://pm2.keymetrics.io/docs/usage/application-declaration/ 
    */ 
    apps : [ 
    // First application 
    { 
     name  : 'DomainProd', 
     cwd  : '/var/www/vhosts/domain.com/httpdocs/App', 
     script : 'start.sh' 
    }, 
    { 
     name  : 'DomainTest', 
     cwd  : '/var/www/vhosts/domain.com/testing.domain.com/httpdocs/App', 
     script : 'start-test.sh' 
    } 
    ] 
}; 

start.shスクリプト

-bash-4.2$ cat /var/www/vhosts/domain.com/httpdocs/App/start.sh 
/usr/bin/grunt serve:prod 
-bash-4.2$ 

私Gruntfile

return grunt.task.run(['concurrent:cleanandbuild', 'build', 'env:all', 'env:prod', 'express:prod', 'wait', 'express-keepalive']); 

上のタスクの実行例サーブ:

-bash-4.2$ pm2 status 
┌────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬────────────┬──────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem  │ watching │ 
├────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼────────────┼──────────┤ 
│ DomainProd │ 0 │ fork │ 17992 │ online │ 63  │ 20D │ 0% │ 264.1 MB │ disabled │ 
│ DomainTest │ 1 │ fork │ 25526 │ online │ 295  │ 113m │ 0% │ 1.2 MB  │ disabled │ 
└────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴────────────┴──────────┘ 
Use `pm2 show <id|name>` to get more details about an app 
-bash-4.2$ pm2 stop 1 
[PM2] Applying action stopProcessId on app [1](ids: 1) 
[PM2] [Domainest](1) ✓ 
┌────────────┬────┬──────┬───────┬─────────┬─────────┬────────┬─────┬────────────┬──────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem  │ watching │ 
├────────────┼────┼──────┼───────┼─────────┼─────────┼────────┼─────┼────────────┼──────────┤ 
│ DomainProd │ 0 │ fork │ 17992 │ online │ 63  │ 20D │ 0% │ 264.1 MB │ disabled │ 
│ DomainTest │ 1 │ fork │ 0  │ stopped │ 295  │ 0  │ 0% │ 0 B  │ disabled │ 
└────────────┴────┴──────┴───────┴─────────┴─────────┴────────┴─────┴────────────┴──────────┘ 
Use `pm2 show <id|name>` to get more details about an app 
-bash-4.2$ pm2 start 1 
[PM2] Applying action restartProcessId on app [1](ids: 1) 
[PM2] [DomainTest](1) ✓ 
[PM2] Process successfully started 
┌────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬────────────┬──────────┐ 
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem  │ watching │ 
├────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼────────────┼──────────┤ 
│ DomainProd │ 0 │ fork │ 17992 │ online │ 63  │ 20D │ 0% │ 264.1 MB │ disabled │ 
│ DomainTest │ 1 │ fork │ 29816 │ online │ 295  │ 0s  │ 0% │ 1.2 MB  │ disabled │ 
└────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴────────────┴──────────┘ 
Use `pm2 show <id|name>` to get more details about an app 
-bash-4.2$ pm2 logs 1 
[TAILING] Tailing last 15 lines for [1] process (change the value with --lines option) 
/var/www/vhosts/domain.com/.pm2/logs/DomainTest-out-1.log last 15 lines: 
1|DomainTe |  Execution Time (2017-10-02 19:33:24 UTC+2) 
1|DomainTe |  loading tasks 579ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 92% 
1|DomainTe |  clean:server 47ms ▇▇▇▇ 7% 
1|DomainTe |  Total 632ms 
1|DomainTe | 
1|DomainTe |  Running "clean:dist" (clean) task 
1|DomainTe |  >> 5 paths cleaned. 
1|DomainTe | 
1|DomainTe |  Done, without errors. 
1|DomainTe | 
1|DomainTe | 
1|DomainTe |  Execution Time (2017-10-02 19:33:24 UTC+2) 
1|DomainTe |  loading tasks 570ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 55% 
1|DomainTe |  clean:dist  456ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 44% 
1|DomainTe |  Total 1s 

[STREAMING] Now streaming realtime logs for [1] process 

が、それはここに到着誰でも役に立てば幸いです。

関連する問題