-
AWS EC2: 터미널이 종료되어도 서버 실행되게 만드는 방법 (feat. PM2)Topic/AWS | JENKINS 2022. 3. 31. 11:11반응형
우리가 SSH를 통해 EC2에 접속하고, 서버 운영중인데 터미널이 강제 종료되었다고 생각해봅시다.
로컬에 띄워져 있던 ssh 프로세스가 강제 종료되고, EC2 상의 프로세스도 같이 종료되면서 서버가 종료되버리는 일이 발생한다.우리는 웹 서버가 구동 중인 node 프로세스가 종료되지 않게 해야하는데
이 때 우리는 프로세스 매니지먼트 도구 PM2를 사용해볼 수 있다.PM2는 node.js로 실행되는 프로그램(프로세스)를 관리해주며, 백그라운드에서 실행되게 만들어준다.
PM2 설치 방법 (서버에 접속한 상태에서)
$ npm install pm2 -g
PM2 전역에 설치 후 node.js 앱을 백그라운드로 실행하기
$ pm2 start app.js
pm2에 관리자 권한을 부여하기 위해서 'authbind' 패키지 설치하기
// 터미널에서 명령어를 차례대로 입력하여 authbind를 설치 sudo apt-get update sudo apt-get install authbind sudo touch /etc/authbind/byport/80 sudo chown ubuntu /etc/authbind/byport/80 sudo chmod 755 /etc/authbind/byport/80 authbind --deep pm2 update
1. authbind의 설치를 완료한 뒤, 'pm2 ls' 명령어로 어떤 프로그램이 PM2의 프로세스 리스트에 등록되어 있는지 확인
2. 'app' 프로세스가 리스트에 있다면 'pm2 delete app.js' 명령어를 통해 프로세스를 삭제 / authbind 설치 전에 실행되고 있던 프로세스에는 관리자 권한을 부여하지 못하기 때문이다.
3. PM2에 관리자 권한을 부여하기 위해서는 'authbind --deep' 명령어를 앞에 추가해야 한다.
4. 'authbind --deep pm2 start app.js' 명령어를 통해 서버를 다시 실행하면 문제없이 작동할 것이다!
반응형'Topic > AWS | JENKINS' 카테고리의 다른 글
AWS | EC2와 로드밸런서 연결하는 방법 (0) 2022.08.30 EC2 만들고 웹스톰에서 SSH 연결해서 레포 clone받는 방법 (0) 2022.08.25 AWS EC2 보안 그룹 설정하는 방법 (0) 2022.03.30 AWS EC2 Instance에서 서버 실행하는 방법 (0) 2022.03.29 간단한 AWS EC2 Instance 생성하는 방법 (feat. 서버 배포, 무료, 프리 티어) (0) 2022.03.28