이번 글에서는 PM2 사용법에 대해 적어보겠습니다.
저는 node.js 기반 웹서버를 aws EC2 인스턴스로 구동시킨 후에 노트북을 닫아도 서버를 계속 구동시키기 위해 PM2를 사용하고자합니다.
PM2란?
우선, PM2의 위키백과의 정의를 가져왔습니다.
PM2는 JavaScript 런타임 Node.js의 프로세스 관리자(manager)입니다. 2016 년 PM2는 GitHub에서 82 번째로 가장 인기있는 JavaScript 프로젝트로 선정되었습니다.
저는 aws 서버 위에서 동작시키고 있는 웹서버를 내 노트북을 닫아도 어떻게 계속 작동시키지? 고민하다 알게되었습니다.
말그대로 제가 원격으로 연결 중인 putty를 끄든, 노트북을 닫든 pm2를 이용해서 서버를 동작시키면 중단이 되지 않도록 해주는 녀석입니다.
pm2 관련 명령어
# 설치 (npm을 이용해서 전역으로 pm2를 설치)
npm install pm2 -g
# 시작
pm2 start A.js
# 실행중인 프로세스 표시
pm2 list
# 프로세스 종료
pm2 stop id
# pm2 데몬 종료
pm2 kill
# 파일 실행 + 변경사항 있을 시 자동으로 재시작
pm2 start A.js --watch
# server라는 프로세스 목록에서 제거
pm2 delete A
-> 이 명령어는 언제 쓰냐? 묻는다면, pm2 stop id 로 프로세스를 종료해도 pm2 list의 결과에는 stopped 상태로 나타납니다. 해당 목록에서도 지우고 싶을 때 delete 명령어를 사용합니다.
예시
위의 사진처럼, 저의 상황에 필요했던 명령어만 적어보겠습니다.
# 시작
pm2 start server.js
# 실행중인 프로세스 표시
pm2 list
# 프로세스 종료
pm2 stop 0
# pm2 데몬 종료
pm2 kill
# 파일 실행 + 변경사항 있을 시 자동으로 재시작
pm2 start server.js --watch
# server라는 프로세스 목록에서 제거
pm2 delete server
이외 명령어)
pm2 log: 로그파일 확인
pm2 start A.js --watch --no-daemon: A라는 파일을 실행, 변경사항이 있을시 자동으로 재시작, pm2 log를 들어갈 필요 없이 바로 로그를 확인 가능
참고)https://velog.io/@woohyun_park/node.js-PM2-%EC%82%AC%EC%9A%A9%EB%B2%95-bym6mmx1
'AWS' 카테고리의 다른 글
[AWS] nohup을 이용하여 무중단 서비스 만들기 (0) | 2021.10.14 |
---|---|
[AWS] EC2 인스턴스 생성 방법 (Ubuntu 18.04) (0) | 2021.10.08 |
[AWS] Windows에서 외부 사용자가 EC2 인스턴스 접속하기 (cmd) (0) | 2021.07.06 |
[AWS] Windows에서 EC2 인스턴스 접속 방법 (Putty) (0) | 2021.07.06 |