pm2启动app.js 15重新启动后退出

npm start会启动我的应用程序,但是当我这样做的时候:

pm2 start app.js 

我得到:

 [PM2] Spawning PM2 daemon [PM2] PM2 Successfully daemonized [PM2] Process app.js launched ┌──────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │ ├──────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────────────┼──────────┤ │ app │ 0 │ fork │ 4681 │ online │ 0 │ 0s │ 11.508 MB │ disabled │ └──────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────────────┴──────────┘ Use `pm2 show <id|name>` to get more details about an app 

在我得到的日志中:

 [PM2] Starting streaming logs for [all] process PM2: 2015-06-04 17:12:37: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:37: Starting execution sequence in -fork mode- for app name:app id:0 PM2: 2015-06-04 17:12:37: App name:app id:0 online PM2: 2015-06-04 17:12:37: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:37: Starting execution sequence in -fork mode- for app name:app id:0 PM2: 2015-06-04 17:12:37: App name:app id:0 online PM2: 2015-06-04 17:12:37: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:37: Starting execution sequence in -fork mode- for app name:app id:0 PM2: 2015-06-04 17:12:37: App name:app id:0 online PM2: 2015-06-04 17:12:38: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:38: Starting execution sequence in -fork mode- for app name:app id:0 PM2: 2015-06-04 17:12:38: App name:app id:0 online PM2: 2015-06-04 17:12:38: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:38: Starting execution sequence in -fork mode- for app name:app id:0 PM2: 2015-06-04 17:12:38: App name:app id:0 online PM2: 2015-06-04 17:12:39: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:39: Starting execution sequence in -fork mode- for app name:app id:0 PM2: 2015-06-04 17:12:39: App name:app id:0 online PM2: 2015-06-04 17:12:39: App name:app id:0 exited with code 0 PM2: 2015-06-04 17:12:39: Script /home/user/app/app.js had too many unstable restarts (15). Stopped. "errored" 

这里是我的package.json:

  1 { 2 "name": "app", 3 "version": "0.0.0", 4 "private": true, 5 "scripts": { 6 "start": "node ./bin/www" 7 }, 8 "dependencies": { 9 "body-parser": "~1.12.4", 10 "cookie-parser": "~1.3.5", 11 "debug": "~2.2.0", 12 "express": "~4.12.4", 13 "jade": "~1.9.2", 14 "morgan": "~1.5.3", 15 "serve-favicon": "~2.2.1", 16 "stylus": "0.42.3" 17 } 18 } 

节点版本:v0.10.38 pm2版本:0.12.15

我怎样才能debugging呢? 我不知道为什么它失败了,是否有其他地方我需要检查? 我的app.js文件?

首先,我尝试node ./bin/www ,并确保工作正常。

我不知道什么“官方”的方式来解决这个问题,但这应该工作:
你可以把一个未被捕获的exception处理程序放入你的代码中,它只是写入一个文件或者做其他的事情。

 process.on('uncaughtException', function(err) { console.log('Caught exception: ' + err); throw err; }); 

编辑:根据你的评论,你有问题的原因是因为app.js是不是真正的入口点在您的应用程序。 真正的入口点是./bin/www

所以你需要告诉PM2启动这个文件,而不是像这样的app.js
pm2 start ./bin/www