2016-06-21 112 views
0

我試圖使用PM2部署的目的,所以在我的部署過程結束時,我做得到部署後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)您可以從CLI獲得的JSON格式的當前狀態:

pm2 jlist 
pm2 prettylist 

2),也可以連接到PM 2編程實例:

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