2016-06-21 5 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 └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘ 

상태는 온라인 상태가이고 배포가 sucessfull인지 여부에 관계없이 나타납니다.
Jenkins 빌드가 성공하지 못했을 때 성공으로 표시합니다. 이후에 바로 당신이

pm2 list 

을 할 경우는

그래서 실패

으로 빌드를 표시 할 수 있도록 API 또는 무언가를 통해 정확한 상태를 얻을 수있는 방법이 오프라인 올바른 상태를 얻을 수

답변

0

1) 당신은 CLI에서 JSON 형식의 현재 상태를 얻을 수 있습니다 :

pm2 jlist 
pm2 prettylist 

2) 아니면 오후에 연결할 수 있습니다 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을 사용할 수도 있습니다.