무중단실행과 프로세스가 죽어도 자동으로 재실행시켜주는 명령어를 찾다가
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을 쓰면된다.
'리눅스' 카테고리의 다른 글
[forever] forever 로그 파일 경로 및 월별로그 생성 (0) | 2023.04.26 |
---|---|
[ubuntu] hostname 변경, user에 root 권한 부여하기 (0) | 2023.04.21 |
Bash Shell 날짜, 시간 yyyy-MM-dd (0) | 2022.11.18 |
nohub 로그 파일 이름 설정하기 (0) | 2022.11.18 |
Unix에서 파일 및 디렉토리를 삭제 하려면? rm 명령어를 이용 해보자. (0) | 2019.06.26 |