프로젝트 소개

PM2는 Node.js, TypeScript, Bun 애플리케이션을 위해 설계된 검증된 프로덕션 프로세스 매니저입니다. 애플리케이션을 무기한 유지하고, 무중단 리로드를 가능하게 하며, 일반적인 시스템 관리 작업을 용이하게 합니다. PM2는 Linux, macOS, Windows를 지원하며, Node.js 18+ 또는 Bun 1+가 필요합니다. 주요 기능은 다음과 같습니다: - **프로세스 관리**: 간단한 명령으로 애플리케이션을 시작, 중지, 재시작, 삭제할 수 있습니다. PM2는 프로세스를 데몬화하고 모니터링하여 항상 유지합니다. - **클러스터 모드 및 로드 밸런싱**: PM2는 여러 Node.js 프로세스를 시작하고 HTTP/TCP/UDP 쿼리를 이들 간에 로드 밸런싱하여 멀티코어 머신에서 처리량을 크게 향상시킬 수 있습니다. 인스턴스 수를 지정하거나 'max'를 사용하여 모든 사용 가능한 CPU를 활용할 수 있습니다. - **무중단 리로드**: 핫 리로드를 통해 다운타임 없이 애플리케이션을 업데이트할 수 있어 프로덕션 환경에 필수적입니다. - **컨테이너 지원**: PM2는 `node`의 대체 도구인 `pm2-runtime`을 제공하여 Node.js 애플리케이션의 원활한 Docker 컨테이너화를 가능하게 합니다. - **터미널 모니터링**: `pm2 monit` 명령은 명령줄에서 직접 모든 실행 중인 프로세스의 실시간 모니터링을 제공합니다. - **로그 관리**: PM2는 표준, 원시, JSON, 포맷 출력을 지원하는 포괄적인 로그 관리를 제공합니다. 로그 회전은 `pm2-logrotate` 모듈을 통해 사용할 수 있습니다. - **시작 스크립트**: PM2는 systemd, upstart, systemv, openrc, launchd, rcd, rcd-openbsd, smf init 시스템용 시작 스크립트를 생성하고 구성하여 서버 재시작 후에도 프로세스가 유지되도록 합니다. - **PM2+ 모니터링**: 여러 서버에서 앱을 모니터링하고 관리하기 위한 클라우드 기반 대시보드입니다. PM2는 npm 또는 Bun을 통해 전역으로 설치되며 AGPL 3.0 라이선스로 제공됩니다.