기록
article thumbnail
728x90

무중단실행과 프로세스가 죽어도 자동으로 재실행시켜주는 명령어를 찾다가

0.0.1. pm2와 forever를 알게되었다.

이것을 메모해보려고 한다.

 

 

AWS에 구글 클라우드에 프로젝트를 구축하려고 한다.

예를 들어서 node index.js / node app.js / npm start 등으로 단순하게 실행한다면

원격 화면창 (AWS/구글클라우드)을 닫는 순간 서버도 같이 닫히게 된다.

 

내가 연결을 종료하더라도 프로세스가 계속 실행되도록 하려면 pm2를 써야한다.

 

1. pm2 

사용법은간단하다

 

1.0.1. 🟪 pm2 실행 명령어

<bash />
pm2 start index.js

     👉 node명령어로 실행할 때, 즉 node index.js 

 

<bash />
pm2 start npm -- start

     👉 npm 명령어로 실행할 때, 즉 npm start 

 

1.0.2. 🟪 pm2 실행중인 프로세스 확인

<bash />
pm2 list

 

1.0.3. 🟪 pm2 프로세스 종료 명령어

<bash />
pm2 stop [id번호]

ex) pm2 stop 0

 

 

프로젝트 내용을 수정하고 다시 실행해야할때가 있다.

데몬을 써도 되겠지만 무료 서버여서 너무 많이 설치하고 싶지 않았다 ㅎㅎㅎ

git연동을 통해 손수 재시작해주는 편..

 

1.0.4. 🟪 pm2 프로세스 재실행 명령어

<bash />
pm2 restart [id번호]

ex) pm2 restart 0

 


 

만약에 try catch를 쓰지 못하는 프로젝트가 있다.

막 프로그램이 막 죽어.. 근데 손 쓸수가 없어.. 그래서 죽으면 자동으로 실행됐으면 좋겠는데...

웬만한 프로젝트들은 이렇게 되면 안되겠지만..?! 디스코드 봇을 만들때 이랬다..

 

 

 

 

 

2. forever

 

2.0.1. 🟪 forever 실행 명령어

 

- 기본 실행 명령어

<bash />
forever start index.js

    👉 node명령어로 실행할 때, 즉 node index.js 

 

- npm 명령어 실행시

<bash />
forever start -c `npm start`

  👉   npm 명령어로 실행할 때, 즉 npm start 

 

개인적으로 덧붙이자면 npm start 쌍따옴표(")로 했을때는 정상적으로 실행되지 않았음

1 옆에 있는 ` 을 이용해서 커맨드를 감싸니까 정상적으로 잘 실행됐음 (구글클라우드..!) (AWS는 모르겠다 잘되나?)

 

- forever 실행시 uid 지정 (커스텀) 하고 싶다면

<bash />
forever start --uid "drrf" index.js

👉  --uid 뒤에 쌍따옴표로 감싸서 내가 원하는 명으로 작성

 

 

2.0.2. 🟪 forever 실행중인 프로세스 확인

<bash />
forever list

2.0.3.  

 

 

2.0.4. 🟪 forever 프로세스 종료 명령어

<bash />
forever stop [uid번호]

ex) forever stop 0

 

2.0.5. 🟪 forever 프로세스 재실행 명령어

<bash />
forever restart [uid번호]

ex) forever restart  0

 

 

 

 

***

프로젝트 소스코드를 수정하고 자동 재배포되도록 하려면 nodemon을 쓰면된다.

profile

기록

@데굴데구르르 림

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

2025, 이제 사내 컨플루언스에 모두 작성하게 되어서 업데이트가 잘 없을 것 같습니다..