pm2 공식 사이트의 한줄 소개를 보면 ,
"Advanced, production process manager for node.js" 라고 소개되어있다.
node.js를 위한 발전된 상품 프로세스 매니져 !
*process : 컴퓨터에 저장된 프로그램이 실행돼서 메모리에 올라간 상태. 즉 동작중인 프로그램을 말함.
즉 pm2란 node.js로 만들어진 프로그램을 잘 관리해주는 아이라는 것.
pm2는 여러가지 기능이 있는데, 예를들어
1. 프로그램이 꺼지면 자동으로 다시 켜줄 수 있다.
-
pm2로 start한 경우 , pm2로 끄지 않으면
프로세스가 예기치 못하게 꺼졌을때, pm2로 시작한 경우 그냥 재시작 된다.
# pm2 start app.js
-
위 명령을 해주면 app.js 라는 프로그램을 프로세스로 만든것이고 , 이 프로세스는 백그라운드로 돌아가게 된다. 그래서 바로 다른 명령을 수행할 수 있는 상태인채로 실행되는것 !
2. 코드가 바뀌었을 때 , 자동으로 프로세스를 컸다 켜준다 (즉, 리소스 수정시 자동 반영)
-
# pm2 start app.js --watch
만약 내가 개발을 하다가 파일의 코드를 수정했다고 치자.
이때 파일이 수정됐다고 해서 메모리 상에서 동작되고있는 프로세스에 반영되는 것은 아니다.
즉 , 내가 코드를 수정해서 저장버튼을 누른다고 해서, 실행중인 앱에 변화가 생기지는 않는다는 것.
그런데 pm2를 쓰면 코드를 수정했을 때 자동으로 프로세스를 껐다가 켜준다.(--watch 지켜보고있다가 변화가 생기면 껐다 켜준다 !)
3. 로그를 한번에 볼수있는 화면 지원
# pm2 log
- 현재 실행중인 프로세스들의 로그들을 하나의 화면에서 모아서 보여줌. 콘솔이랑 리로드됐을때 표시 등등
4. 짱편한 개발자 모드
# pm2-dev app.js
=> watch + log 기능 이라고 생각하면 됨
5. pm2 클러스트 기능
-
# pm2 start app.js -i max
프로세스를 실행시킬 때 가능한 스레드의 숫자만큼 실행시키라는 뜻.
node.js 는 싱글 스레드라서 하나의 스레드만 사용함. 하지만 그 컴퓨터의 가능한 스레드가 더 많은데 하나만 쓰는것보다,
여러대의 스레드에 프로세스를 돌리면 더 많은 사용자의 접속을 받을 수 있음 .
16개의 스레드를 지원하는 컴퓨터 환경인데 1개의 스레드만 쓴다면 아까우니까 , 16개의 프로세스를 돌리는거임 ! (싱글 스레드 x 16개)
6. 컴퓨터가 꺼졌다가 켜졌을 때 , 프로세스를 자동으로 실행시켜주는 기능
# pm2 start app.js
# pm2 save
- 해당 경로에 현재 실행되고 있는 프로세스들에 대한 상태가 저장됨.
# pm2 startup
- 각각의 운영체제별로, 그 운영체제가 실행됐을 때 프로세스들을 실행시켜주는 명령어가 있는데 , 그 명령어를 알려줌.
이제 그 명령어를 복사해서 붙여넣고 실행 시키면, 컴퓨터가 꺼졌다가 켜졌을 때
save를 통해 저장해놓은 프로세스들의 상태를 복원해서 재실행시켜준다. pm2가 이걸 대신 다~~~~ 해주는 매니져 !
https://www.youtube.com/watch?v=p1Hp09Fr8HQ
'nodejs' 카테고리의 다른 글
[node.js] node version manager (nvm) for window / 노드 버전 업데이트 윈도우 (3) | 2024.10.21 |
---|---|
[Node.js] __dirname / process.cwd() (0) | 2022.11.03 |
[node.js] schedule.scheduleJob - pm2 클러스터 모드 사용시 코드 중복적용 문제 (0) | 2022.10.20 |
5.12 (0) | 2021.05.12 |
5.11 login 체크/ pw 체크/아이디 중복확인/ 이미지 올리기/ (0) | 2021.05.11 |