일반적으로 시스템 부팅 후 자동으로 시작되도록 서비스를 등록할 때 systemctl 혹은 init.d 스크립트 등록하여 사용합니다. 

 

systemctl 혹은 init.d 스크립트를 등록하는 방법이 쉽지많은 않으며, 혹시 해당 서비스에 문제가 발생할 경우 서비스가 다운되면 다시 시작되지 않는 문제도 있습니다.

 

이를 해결하기 위해 upstart 같은 프로그램을 사용하여 간단히 해결할 수 있습니다. 하지만 이마저도 각 서비스 별로 별도 등록, 관리해야 합니다. 

 

만약 당신이 pm2를 사용하여 Node.js로 제작된 서비스를 관리하고 있다면 위의 모든 문제를 손쉽게 해결할 수 있습니다. 

 

pm2에 서비스를 등록, 중단, 삭제하는 방법은 아래와 같이 간단합니다. 

 

pm2 start your_app.js  >> 서비스 등록 및 시작하기
pm2 stop your_app      >> 서비스 중단하기
pm2 restart your_app.js>> 서비스 재시작하기
pm2 del your_app       >> 등록된 서비스 정보를 삭제하기

부트 스크립트에 추가하기 전에 당신의 서비스를 pm2에 모두 등록했다고 가정하고 진행하겠습니다. 

 

부트 스크립트와 관련해서 startup과 unstartup 명령만 알고 있으면 됩니다. 

 

startup은 해당 시스템의 init system을 찾아 pm2의 초기 실행 스크립트를 등록하고, 필요한 환경 변수 설정을 위한 값을 출력해 줍니다. 실제 환경 변수 등록과 부팅 스크립트에 등록을 위해서는 출력된 내용을 복사하여 실행해야 하니 해당 과정을 잊지 마세요. 

 

$ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/home/user/.nvm/versions/node/v14.7.0/bin /home/user/.nvm/versions/node/v14.7.0/lib/node_modules/pm2/bin/pm2 startup systemd -u user --hp /home/user
# 위 sudo env .. 라인 전체를 복사해서 실행하면 필요한 설정이 모두 적용됩니다.

끝!!!

+ Recent posts