프로세스 관리는 어떻게 해야 할까? [프로세스 관리도구] PM2
반응형

pm2.keymetrics.io

 

안녕하세요 Lotts 입니다 😉

 

저번 포스팅인

React로 영화 검색 사이트를 만들어보자 - 세 번째 네이버 API 사용 / React 배포 / CORS 설정 하기

에서 잠깐 소개해드렸는데요

node의 server.js를 기동 할 때 pm2를 사용해 봤습니다

 

그때의 약속을 지키고자

이렇게 포스팅을 하게 되었습니다

 

이번 포스팅 주제는 

데몬 프로세스의 관리 도구인

PM2

입니다

 

👏👏👏👏

 

PM2는 process manager 2의 약자이며

node의 응용 프로그램을 관리하는 프로세스 관리 도구입니다

 

그렇다면 우리가 알고 있는 또 다른 관리 도구가 

생각나실 겁니다 😉

 

바로 forever

저도 처음에는 forever를 사용했답니다

 

🔎 GitHub 비교

GitHub 비교

forever는 ⭐가 12.8K에 fork는 932이고

pm2는 가 32K에 fork가 2.2K로 

pm2가 약 3배 정도 많아 보입니다

😁

 

🔎pm2의 장점

로드 밸런서가 내장되어 있다

✅ 콘솔에서 모니터링이 가능하다

 

 

pm2에 대해서 자세히 알아보겠습니다 🔎

 


📢 PM2 프로세스 시작

 

pm2를 설치해보고

서버 프로세스를 기동 해보도록 하겠습니다

 

✅ PM2 설치

$ npm install pm2 -g

-g는 global의 약자로 전역 설치를 뜻합니다

전역 설치를 진행하면 모든 프로젝트가 공통으로 사용할 수 있게 해 줍니다

 

✅ App 시작

$ pm2 start app.js

 

💡 옵션

$ pm2 start app.js --name 앱 이름

실행하는 App의 이름을 지정할 수 있습니다

 


 

📢 PM2 프로세스 관리

 

노드를 잘 다루기 위해

PM2의 관리 명령어를 살펴보겠습니다 🔎

 

✅ pm2 재시작

$ pm2 restart

프로세스를 kill 한 후에 다시 기동 합니다

 

 

✅ pm2 중지

$ pm2 stop

status가 stopped로 변경되며 프로세스가 중지됩니다

 

 

✅ pm2 삭제

$ pm2 delete

 

✅ pm2 리로드

$ pm2 reload

프로세스의 다운타임을 0초로 만든 후에 다시 로드합니다

 

 

💡 옵션

모든 명령어 뒤에 다음과 같은 옵션을 넣을 수 있습니다

 

📍 ID

명령어 뒤에 특정 프로세스의 ID를 입력해주면 해당 ID의 프로세스만 적용됩니다

id 확인은  pm2 list라는 목록 보기를 통해서 확인할 수 있습니다

$ pm2 [stop|restart|reload|delete] id

 

📍 ALL 

모든 프로세스에 적용됩니다

$ pm2 [stop|restart|reload|delete] all

 

 


📢 pm2 모니터링

 

node의 상태를 모니터링할 수 있는

pm2의 기능을 살펴보겠습니다 🔎

 

 

✅ pm2 목록

$ pm2 [list|ls|status]

node 프로세스의 id나 status, pid 등 다양한 정보를 볼 수 있는 리스트 옵션입니다 

 

✅ pm2 목록 JSON

$ pm2 jlist
$ pm2 prettylist

재미있는 건 목록을 JSON 형태로도 받아 올 수 있습니다.

그러면 해당 정보를 가져와 서버 프로세스의 모니터링을 웹에서도 만들 수도 있을 거 같습니다 😉

 

 

✅ pm2 상세 정보

$ pm2 show App이름 or ID

node 프로세스의 상세한 정보를 확인하기 위해서는 show 옵션을 사용하면 됩니다

 

 

✅ pm2 모니터링

$ pm2 monit

pm2에서 제공하는 콘솔 모니터링입니다

왼쪽 상단에 프로세스 목록과 오른쪽 상단에는 로그정보를 볼 수 있고 Custom Metrics, Metadata를 볼 수 있습니다

 

✅ pm2 로그

$ pm2 logs

$pm2 logs --lines 100

콘솔에 로그정보를 볼 수 있는 기능이며 리눅스의 tail 명령어처럼 logs 정보를 실시간으로 볼 수 있습니다

--lines 옵션을 추가하면 -f처럼 이전 라인도 같이 출력됩니다

로그를 중지할 때는 ctrl + c로 종료하시면 됩니다

 


 

📢 마무리

 

node 서버 프로세스를 관리하기 위해

보다 편리하고 쉽게 도와주는

PM2

에 대해서 알아보았습니다

👏👏👏

 

위의 기본적인 기능 이외의 cluster mode나 ecosystem File 등 훨씬 더 많은 기능이 있으니

공식 홈페이지를 참조하시면 좋을 거 같습니다 😊

 

 

 

반응형