[무중단실행/무한실행] 리눅스 실행 명령어
무중단실행과 프로세스가 죽어도 자동으로 재실행시켜주는 명령어를 찾다가
pm2와 forever를 알게되었다.
이것을 메모해보려고 한다.
AWS에 구글 클라우드에 프로젝트를 구축하려고 한다.
예를 들어서 node index.js / node app.js / npm start 등으로 단순하게 실행한다면
원격 화면창 (AWS/구글클라우드)을 닫는 순간 서버도 같이 닫히게 된다.
내가 연결을 종료하더라도 프로세스가 계속 실행되도록 하려면 pm2를 써야한다.
pm2
사용법은간단하다
🟪 pm2 실행 명령어
pm2 start index.js
👉 node명령어로 실행할 때, 즉 node index.js
pm2 start npm -- start
👉 npm 명령어로 실행할 때, 즉 npm start
🟪 pm2 실행중인 프로세스 확인
pm2 list

🟪 pm2 프로세스 종료 명령어
pm2 stop [id번호]
ex) pm2 stop 0
프로젝트 내용을 수정하고 다시 실행해야할때가 있다.
데몬을 써도 되겠지만 무료 서버여서 너무 많이 설치하고 싶지 않았다 ㅎㅎㅎ
git연동을 통해 손수 재시작해주는 편..
🟪 pm2 프로세스 재실행 명령어
pm2 restart [id번호]
ex) pm2 restart 0
만약에 try catch를 쓰지 못하는 프로젝트가 있다.
막 프로그램이 막 죽어.. 근데 손 쓸수가 없어.. 그래서 죽으면 자동으로 실행됐으면 좋겠는데...
웬만한 프로젝트들은 이렇게 되면 안되겠지만..?! 디스코드 봇을 만들때 이랬다..
forever
🟪 forever 실행 명령어
- 기본 실행 명령어
forever start index.js
👉 node명령어로 실행할 때, 즉 node index.js
- npm 명령어 실행시
forever start -c `npm start`
👉 npm 명령어로 실행할 때, 즉 npm start
개인적으로 덧붙이자면 npm start 쌍따옴표(")로 했을때는 정상적으로 실행되지 않았음
1 옆에 있는 ` 을 이용해서 커맨드를 감싸니까 정상적으로 잘 실행됐음 (구글클라우드..!) (AWS는 모르겠다 잘되나?)
- forever 실행시 uid 지정 (커스텀) 하고 싶다면
forever start --uid "drrf" index.js
👉 --uid 뒤에 쌍따옴표로 감싸서 내가 원하는 명으로 작성
🟪 forever 실행중인 프로세스 확인
forever list

🟪 forever 프로세스 종료 명령어
forever stop [uid번호]
ex) forever stop 0
🟪 forever 프로세스 재실행 명령어
forever restart [uid번호]
ex) forever restart 0
***
프로젝트 소스코드를 수정하고 자동 재배포되도록 하려면 nodemon을 쓰면된다.