PM2 is a daemon process manager that will help you manage and keep your application online 24/7
라고 나와 있다.
node app.js 로 실행하면 소스를 변경할 때마다 서버 내렸다 올려야하는 등..귀찮음을 유발하는 일이 많은데
pm2 start app.js 로 실행하면 소스를 변경할 때마다 알아서 서버를 내렸다가 다시 올려주고, 가동중인 서버들을 실시간으로 확인할 수 있다.
애플리케이션 서버 운영을 대신해주는 프로그램이라고 생각하면 된다!
pm2 는 npm을 이용해서 설치한다.
cmd창에 다음 명령을 입력하면 설치된다.
npm install pm2 -g
EACCESS가 뜨거나, 접근을 못해서 어쩌구.. 라는 ERROR가 뜨면 다음과 같이 sudo 를 붙여주면 된다.
sudo npm install pm2 -g
아래 명령을 치면 app.js(여기에 실행하고싶은 파일 이름을 넣는다.) 를 pm2가 실행시키고, 스크립트 파일에 적힌대로 서버를 띄워준다.
pm2 start app.js
로그를 함께 확인하고 싶다면 --attach 옵션을 붙여준다.
pm2 start api.js --attach
소스 변경을 추적하고 서버를 자동 재시작시켜주고 싶다면(주요목적) --watch 옵션을 붙여준다.
pm2 start api.js --watch
재실행하고 싶다면
pm2 restart [app] -> 원하는 어플리케이션의 이름 또는 아이디
실행중인 어플리케이션의 상태를 확인하려면
pm2 list or pm2 status
어플리케이션의 CPU 점유 상태를 확인하려면
pm2 monit
특정 어플리케이션의 상세 정보를 확인하려면
pm2 show [app] -> 원하는 어플리케이션의 이름 또는 아이디
실행중인 특정 어플리케이션을 중단
pm2 stop [app] -> 원하는 어플리케이션의 이름 또는 아이디
실행중인 어플리케이션 모두 중단
pm2 stop all
어플리케이션 삭제
pm2 delete [app] -> 원하는 어플리케이션의 이름 또는 아이디
어플리케이션 모두 삭제
pm2 delete all
모든 프로세스 삭제, 태초의 상태로 돌아가기
pm2 kill
로그 확인은 아래 명령으로 가능하다.
pm2 logs
사용 가능한 옵션 목록은 다음과 같다. (자주 쓸 법한 것만 모음)
--err
에러만 보여준다.--out
표준 출력만 보여준다. --lines <n>
출력 라인 수를 n으로 제한한다. --timestamp [format]
timestamp를 format으로 지정한 형식으로 출력한다.highlight [value]
value 로 지정한 값만을 하이라이팅해서 보여준다. -h
사용 관련 정보를 보여준다. 로그를 삭제하려면
pm2 flush
특정 어플리케이션에 관한 로그만 삭제하려면
pm2 flush
로그 확인을 중단하고 싶으면 ctrl + C
를 누르면 된다.