웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > webdevetc

시스템 리부팅시 pm2 스크립트 자동 실행 방법

Last Modified : 2023-11-09 / Created : 2023-01-31
5,077
View Count
예기치 못한 상황으로 웹호스팅 서비스가 리부팅되었음을 알리는 메일이 왔다고 생각해봅니다. 서버를 재시작하기 위해서 pm2 스크립트 재시작이 필요한데 하필 외부에 오래 머물러야 한다면? 이 경우 어떻게 서비스를 재가동 시킬 수 있을까요?

결국 서버를 접근하는 방법 외에는 딱히 방법이 없을 것입니다. 자동으로 실행할 수 있는 스크립트를 설정해두었다면 모르겠지만 말입니다... 이 얘기는 제 경험담으로 리부트 스크립트(reboot scripting)를 작성해 둬야지 생각만 하다가 막상 이런 일이 생겼을 때 적용하게 된 내용입니다. 그런데 리눅스 머신 리부트시 스크립트 설정에 몇 가지 방법이 있는데 pm2만 실행해도 된다면 가장 방법이 있더군요. 바로 pm2에서 제공하는 startup script를 사용하는 방법입니다.



! pm2 startup 스크립트 사용하기


다른 서비스 구동이 필요없이 pm2만 동작하면 된다면 이 방법이 가장 편리하고 빠른 방법입니다. pm2 startup 명령어는 서버 재시작시 자동으로 시작 스크립트를 동작시켜주기 때문에 가장 쉽고 빠르게 실행할 수 있습니다.

방법은 매우 간단합니다. 커맨드 라인에 아래 스크립트를 사용합니다.
> pm2 startup

스크립트를 실행하면 자동으로 시작시 스크립트를 생성해줍니다. 나타나는 메시지를 확인해보니 systemctl에 새로운 pm2-root.service가 생성된 것을 확인 할 수 있습니다.
> systemctl status pm2-root 

현재 구동되고 있음을 보여줍니다. 이제 마지막으로 아래처럼 pm2 save를 사용하여 저장해주면 리부트시 자동으로 서비스가 실행되게 됩니다.
> pm2 save

// 실행결과
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2

여기까지 모든 과정이 끝났습니다.


[ 참고사항 ]
참고로 재부팅 후 동작에 문제가 있다면 권한 확인이 필요할 수 있습니다. 만약 재부팅시 계정이 root가 아닌 경우 pm2 스크립트의 권한 이슈로 동작하지 않을 수 있기 때문이죠.

Previous

[IDE] intellij 터미널에서 vi, vim 편집시 esc키 사용하는 방법

Previous

@font-face로 aws s3 폰트 불러올 때 cors 에러 해결 방법