我尝试将PM2用于部署目的,因此在部署过程结束时我做了
pm2 startOrReload staging.json --env preprod
我得到了这个:
16:26:12 ‘staging/current’ -> ‘/srv/pb/dev/v0.0.6-85-g755a611’
16:26:12 [PM2] Applying action reloadProcessId on app [pb1](ids: 0)
16:26:13 [PM2] [pb1](0) ✓
16:26:13 ┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
16:26:13 │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │
16:26:13 ├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
16:26:13 │ pb1 │ 0 │ fork │ 30180 │ online │ 111 │ 0s │ 19.805 MB │ enabled │
16:26:13 └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
您可以注意到状态是否在线,无论部署是否成功;
并且正在将Jenkins构建成为成功的标志。如果你做了
pm2 list
您获得了正确的状态离线
那么有没有办法通过API或其他东西获得正确的状态,以便我可以将构建标记为失败
答案 0 :(得分:1)
1)您可以从CLI获取JSON格式的当前状态:
pm2 jlist
pm2 prettylist
2)或者您可以通过编程方式连接到pm2实例:
var pm2 = require('pm2');
pm2.connect( function(err) {
if (err) process.exit();
pm2.list( function(err,list) {
list.forEach( function(e) {
console.log( e.name, e.pm2_env.status );
});
pm2.disconnect();
});
});
3)或者您可以使用keymetrics monitoring。