리눅스용 Node.js 애플리케이션을 위한 4가지 프로세스 관리자

A Node.js process manager is a useful tool to ensure that a Node.js process or script runs continuously (forever) and can enable it to auto-start at system boot.

그것은 실행 중인 서비스를 모니터링하는 것을 가능하게 해주며, 일반 시스템 관리 任务( restarting on failure, stopping, configuration reloading without downtime, environment variables/settings modify, 성능 지표 보기 등)를 간편하게 수행하기 위해 도와줍니다. 그것은 또한 응용 로그ging, クラスタ링, 以及 load balancing을 지원하고, 많은 다른 유용한 프로세스 관리 특징을 갖추고 있습니다.

더 읽을 것: 2019 년 NodeJS 프레임워크 14 가지

A package manager is useful especially for deployment of Node.js applications in a production environment. In this article, we will review four process managers for Node.js application management in a Linux system.

1. PM2

PM2는 오픈 소스, 高级, 기능 充実, Cross-platform 및 가장 인기 있는 Node.js 프로dcution-level 프로세스 관리기입니다. 内蔵 load balancer를 갖추고 있습니다. 실행 중인 모든 Nodejs 프로세스에 대한 목록, 모니터링, 및 동작을 허용하며, クラ스터 모드를 지원합니다.

Install PM2 to Run Nodejs Apps in Linux

응용 모니터링을 지원하며: 응용에 대한 자원(메모리와 CPU) 사용 모니터링을 간단하게 지원합니다. 각 응용의 동작을 구성하고 조정하는 것을 workflow 지원하기 위해 응용 정보를 프로세스 파일로 구성할 수 있습니다. 지원하는 형식은 JavaScript, JSON, YAML이며 이를 포함합니다.

응용 프로그램 로그는 항상 생산 환경에서 키 역할을 합니다. 이에 관해 PM2는 응용 프로그램 로그를 쉽게 관리할 수 있도록 합니다. 로그를 처리하고 표시하는 다양한 방법과 형식을 제공합니다. 실시간으로 로그를 표시하고 플러시하고 필요할 때 다시로드할 수 있습니다.

중요한 것은 PM2가 시작 스크립트를 지원한다는 것입니다. 예상되는 경우 또는 예상치 못한 컴퓨터 다시 시작 시 프로세스를 자동 시작하도록 구성할 수 있습니다. 또한 현재 디렉토리나 하위 디렉토리에서 파일이 수정되었을 때 응용 프로그램을 자동으로 다시 시작할 수 있습니다.

또한 PM2는 사용자가 Nodejs 프로세스 관리를 위해 사용자 지정 모듈을 만들 수 있는 모듈 시스템을 제공합니다. 예를 들어, 로그 회전 모듈이나 로드 밸런싱을 위한 모듈을 만들 수 있습니다.

마지막으로, 만약 Docker 컨테이너를 사용하고 있다면, PM2는 컨테이너 통합을 지원하며 프로그램적으로 사용할 수 있는 API 시스템을 제공합니다.

2. StrongLoop PM

StrongLoop PM도 노드.js 애플리케이션을 위한

StrongLoop PM Process Manager for Nodejs

그것은 응용 모니터링(이벤트 루프 시간과 같은 パフォーマンス 지표, CPU 및 메모리 CONSUMPTION), 다중 호스트 배포, クラスタ 모드, 자동 이벤트 重启과 升级, 실패 시 자동 프로세스 重启, 로그 집계 및 管理을 지원합니다.

また、Docker 지원이 포함되며, StatsD-compatible 서버로 パフォーマン스 지표를 export하고 3rd-party 콘솔로서 DataDog, Graphite, SplunkSyslog과 rough log files를 볼 수 있습니다.

3. Forever

Forever는 자신의 스크립트를 계속해서 실행하도록 하는 개방 소스, 간단하고 configureable 명령어 行 인터페이스 도구입니다. forever를 사용하여 Node.js 응용 프로그램과 스크립트의 더 작은 배포를 실행할 수 있습니다. 명령어 行으로 또는 자신의 코드에서 embedding하여 사용할 수 있습니다.

Forever Run Scripts Continuously

그것은 Node.js 프로세스를 관리할 수 있게 해주며 (시작, 목록, 중지, 모두 중지, 재시작, 모두 재시작 등..), 파일 변경을 감지, 디버그 모드, 애플리케이션 로그, 프로세스 종료 및 종료 신호 사용자 정의를 지원하며 훨씬 더 많은 기능을 제공합니다. 게다가, 명령줄에서 직접 전달하거나 JSON 파일에 전달할 수 있는 여러 사용 옵션을 지원합니다.

4. SystemD – 서비스 및 시스템 관리자

Linux에서 Systemd는 프로세스 및 파일 시스템의 다른 구성 요소와 같은 시스템 리소스를 관리하는 데몬입니다. Systemd가 관리하는 모든 리소스를 단위라고 합니다. 서비스, 장치, 소켓, 마운트, 타겟 및 다른 많은 단위를 포함하여 다양한 유형의 단위가 있습니다.

Systemd단위 파일이라고 하는 구성 파일을 통해 단위를 관리합니다. 따라서 Node.js 서버를 다른 시스템 서비스와 마찬가지로 관리하려면 해당 서비스 파일인 단위 파일을 만들어야 합니다.Node.js 서버에 대한 서비스 파일을 만든 후에는 시스템 부팅 시 자동으로 시작하도록 설정하고 상태를 확인하고 구성을 다시 시작하거나 다시로드하고 다른 systemd 서비스와 마찬가지로 중지할 수 있습니다.

한 번 Node.js 서버에 대한 서비스 파일을 만들었으면, 서비스를 시작하고, 시스템 부팅 시 자동으로 시작하도록 설정할 수 있으며, 상태를 확인하거나, 다시 시작(중지하고 다시 시작)하거나, 구성을 다시 로드하거나, 어떤 다른 systemd 서비스와 마찬가지로 중지할 수 있습니다.

자세한 내용은 다음을 참조하세요: 쉘 스크립트를 사용하여 Systemd에서 새 서비스 단위를 생성하고 실행하는 방법

요약

A Node.js package manager is a useful tool for deploying your project in a production environment. It keeps an application alive forever and simplifies how you can control it. In this article, we reviewed four package managers for Node.js. If you have any additions or questions to ask, make use of the feedback form below to reach us.

Source:
https://www.tecmint.com/process-managers-for-node-js-applications-in-linux/