웹사이트 검색

시스템 부팅 시 PM2를 활성화하여 Node.js 앱을 자동 시작하는 방법


PM2는 강력하고 널리 사용되며 기능이 풍부하고 즉시 사용 가능한 Node.js용 프로세스 관리자입니다. 서버가 부팅/재부팅될 때마다 관리하는 프로세스로 PM2를 다시 시작하는 것이 중요합니다. PM2의 주요 기능 중 하나는 서버를 다시 시작할 때마다 PM2와 프로세스를 다시 시작하는 시작 스크립트(서버의 기본 초기화 시스템을 기반으로 동적으로 생성됨)를 지원하는 것입니다.

시작 스크립트는 init 시스템에서 PM2를 서비스로 설정합니다. 서버가 다시 시작되면 PM2가 자동으로 다시 시작되고, 관리 중인 모든 Node.js 애플리케이션/프로세스가 다시 시작됩니다.

이 문서에서는 Node.js 앱을 안정적으로 관리하기 위해 PM2를 서비스로 배포하는 방법을 보여줍니다. 이 가이드의 경우 테스트 시스템은 systemd 서비스와 시스템 관리자를 사용합니다. 이 문서의 모든 명령은 root로 실행됩니다(권한이 있는 사용자가 호출하려면 필요한 경우 sudo 사용).

Init 시스템용 PM2 시작 스크립트 생성

PM2는 Linux 시스템의 기본 init 시스템(자동 감지 가능)과 함께 작동하여 시작 스크립트를 생성하고 PM2를 구성하도록 설계되었습니다. > 시스템 부팅 시 다시 시작할 수 있는 서비스로.

시작 스크립트를 생성하려면 루트로 다음 명령을 실행하면 됩니다.

pm2 startup

startup 하위 명령은 PM2에게 사용 가능한 초기화 시스템을 감지하고 구성을 생성하며 시작 시스템을 활성화하도록 지시합니다.

다음과 같이 init 시스템을 명시적으로 지정할 수도 있습니다.

pm2 startup systems

PM2 시작 서비스가 systemd에서 실행되고 있는지 확인하려면 다음 명령을 실행합니다(pm2-root.service를 실제 명령으로 바꾸세요). 서비스 이름을 확인하려면 이전 명령의 출력을 확인하세요.)

systemctl status pm2-root.service

Node.js 애플리케이션/프로세스 시작

다음으로, 다음과 같이 PM2를 사용하여 Node.js 애플리케이션을 시작하려고 합니다. 이미 실행 중이고 PM2를 통해 시작된 경우 이 단계를 건너뛸 수 있습니다.

cd /var/www/backend/api-v1-staging/
pm2 start src/bin/www.js -n api-service-staging

다음으로, PM2를 사용하여 관리하려는 프로세스의 현재 목록을 등록/저장하여 시스템 부팅 시(예상할 때마다 또는 예기치 않게 서버가 다시 시작될 때마다) 프로세스가 다시 생성되도록 해야 합니다. 다음 명령을 실행합니다.

pm2 save

부팅 시 PM2 자동 시작 Node.js 앱 확인

마지막으로 설정이 제대로 작동하는지 테스트해야 합니다. 시스템을 다시 시작하고 모든 Node.js 프로세스가 PM2에서 실행되고 있는지 확인하세요.

pm2 ls
or
pm2 status

다음 명령을 실행하여 프로세스를 수동으로 부활시킬 수 있습니다.

pm2 resurrect

시작 시스템 비활성화

표시된 대로 unstartup 하위 명령을 실행하여 시작 시스템을 비활성화할 수 있습니다.

pm2 unstartup
OR
pm2 startup systemd

시작 스크립트를 업데이트하려면 먼저 비활성화한 다음 표시된 대로 다시 시작하십시오.

pm2 unstartup
pm2 startup

참조: PM2 시작 스크립트 생성기.