0

환경 변수 APP_PATH로 실행 가능한 노드 애플리케이션의 경로를 정의하는 간단한 스테이징 CI 환경을 구축하고 있습니다.환경 변수로 PM2 스크립트 경로를 정의하십시오.

프로세스 구성 파일에서 PM2가 APP_PATH 변수의 경로를 따라 시작 스크립트를 찾도록 할 수 있습니까? 이처럼

: 위의 구성을 시작할 때 현재

{ 
    "apps": [ 
    { 
     "name": "my_app", 
     "script": "$APP_PATH/app.js" 
    } 
    ] 
} 

, 나는 PM2에서 [PM2][ERROR] script not found : 메시지가 표시됩니다. 간단히 말해서

: PM2는 script 속성에 정의 된 ENV var에 해결되지 않습니다. 이것을 극복 할 수있는 방법이 있습니까?

+0

재부팅시 PM2가 자동으로 앱을 시작하게 하시겠습니까? –

+0

@Prasanthchinja 예, 그 계획입니다 – m3dw3

답변

1

동일한 접근 방식으로 수행해야하는 경우. 따라와.

루트 디렉토리 외부 또는 필요할 때 .json 파일을 만듭니다.

[{ 
    "name":"MyApp", 
    "script":"/home/user/app/server.js", 
    "instances":"3" //number of instances to start 
}, 
{ 
    "name":"MySecondApp", 
    "script":"/home/user/app2/server.js", 
    "instances":"max" //to calculate your number of CPU cores available and run based on the core count 
}] 

servers.json는이 언급 이름과 인스턴스가 두 응용 프로그램을 시작합니다 pm2 start servers.json

사용하여 실행합니다.

아니면 모든 스크립트를 작성할 필요가 없습니다 PM2의 최신 버전으로

. 같은 작업을 수행하기위한 명령을 실행하십시오.

1 단계 : 먼저 실행해야하는 많은 인스턴스 또는 실행해야하는 서버의 수와 같이 필요에 따라 pm2 인스턴스를 만듭니다. 당신이 애플 리케이션을 시작하고 다음과 같이 나열되면

광산 enter image description here

이하입니다.

2 단계 : pm2 startup을 입력하십시오. 그러면 pm2에 의해 자동 생성 된 명령이 표시되어 서비스로 만들 수 있습니다.

enter image description here

3 단계 : 당신은 회색 그늘에서 실행하는 데 필요한 명령을 볼 수 있습니다. 이를 복사하여 루트 사용자로 실행하십시오.

일단 명령을 실행하면 아래와 같은 결과가 표시됩니다.

enter image description here

단계 4 : 실행 pm2 save 때문에 프로세스의 현재 PM2 목록 시작 스크립트에 저장됩니다. 서버를 재부팅하고 pm2 ls 또는 pm2 status를 사용하여 확인하여 그것 뿐이다

..

는 테스트를.

pm2 프로세스 목록을 다시 업데이트하려는 경우 pm2 update을 사용하면 현재 프로세스 목록을 사용하고 시작 스크립트를 업데이트합니다.

희망이 도움이됩니다!

+0

이 설명 주셔서 감사하지만 내 질문에 대답하지 않습니다. – m3dw3

+0

당신은 하나의 구식을 사용하고 있지만, 최신은 똑같은 기능을위한 몇 가지 빠른 쉬운 방법을 가지고 당신은 최신 오른쪽으로 갈 수 있습니까? –

+0

JSON 구성 및 CLI 명령을 통해 앱 설정을 수행하고 다시로드 할 수 있음을 알고 있습니다. 내 문제는 내가 설정 JSON을 사용하는 경우'script' 속성의 env var가 해결되지 않는다는 것입니다. – m3dw3