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.
Он позволяет отслеживать запущенные службы и упрощает общие задачи администрирования системы (такие как перезапуск при сбое, остановка, перезагрузка конфигураций без простоя, изменение переменных среды/настроек, отображение показателей производительности и многое другое). Он также поддерживает ведение журнала приложений, кластеризацию и балансировку нагрузки, а также множество других полезных функций управления процессами.
Читайте также: 14 лучших фреймворков NodeJS для разработчиков в 2019 году
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 – это открытый, продвинутый, полнофункциональный, кросс-платформенный и самый популярный менеджер процессов на производственном уровне для Node.js с встроенным балансировщиком нагрузки. Он позволяет перечислять, отслеживать и действовать на все запущенные процессы Nodejs, а также поддерживает режим кластера.

Он поддерживает мониторинг приложений: предлагает простой способ отслеживания использования ресурсов (памяти и ЦП) вашего приложения. Он поддерживает ваш рабочий процесс управления процессами, позволяя настраивать и настраивать поведение каждого приложения через файл процесса (поддерживаемые форматы включают Javascript, JSON и YAML).
Журналы приложений всегда являются ключевыми в производственной среде, в этом отношении PM2 позволяет легко управлять журналами вашего приложения. Он предоставляет различные способы и форматы для обработки и отображения журналов соответственно. Вы можете отображать журналы в реальном времени, сбрасывать и перезагружать их по мере необходимости.
Важно, что PM2 поддерживает скрипты запуска, которые можно настроить для автоматического запуска ваших процессов при ожидаемых или неожиданных перезапусках машины. Он также поддерживает автоматический перезапуск приложения при изменении файла в текущем каталоге или его подкаталогах.
Кроме того, PM2 поставляется с системой модулей, которая позволяет пользователям создавать пользовательские модули для управления процессами Nodejs. Например, вы можете создать модуль для вращения журнала или балансировки нагрузки и многое другое.
Наконец, если вы используете контейнеры Docker, PM2 позволяет интегрировать контейнеры и предлагает систему API, которая позволяет использовать его программно.
2. StrongLoop PM
StrongLoop PM также является открытым и продвинутым менеджером процессов для приложений Node.js с встроенной балансировкой нагрузки, как и PM2, и может использоваться через командную строку или графический интерфейс.

Он поддерживает мониторинг приложений (просмотр метрик производительности, таких как время цикла событий, потребление CPU и памяти), развёртывание на нескольких хостах, режим кластера, перезапуск приложения без простоев и обновлений, автоматический перезапуск процесса в случае сбоя, а также агрегацию и управление журналами.
Кроме того, он поставляется с поддержкой Docker, позволяет экспортировать метрики производительности на серверы, совместимые с StatsD, и просматривать их в консолях сторонних поставщиков, таких как DataDog, Graphite, Splunk, а также в Syslog и сырых журнальных файлах.
3. Вечность
Forever – это инструмент с открытым исходным кодом, простой и настраиваемый интерфейс командной строки для непрерывного выполнения заданного сценария (вечно). Он подходит для запуска малых развертываний приложений и сценариев на Node.js. Можно использовать forever двумя способами: через командную строку или встраивая его в свой код.

Он позволяет управлять (запускать, перечислять, останавливать, полностью останавливать, перезапускать, полностью перезапускать и т. д.) процессами Node.js и поддерживает отслеживание изменений файлов, режим отладки, журналы приложений, прекращение работы процесса и настройку сигналов завершения и многое другое. Кроме того, он поддерживает несколько вариантов использования, которые можно передать непосредственно из командной строки или передать их в файле JSON.
4. SystemD – Служба и Менеджер Системы
В Linux Systemd является демоном, который управляет ресурсами системы, такими как процессы и другие компоненты файловой системы. Любой ресурс, управляемый systemd, известен как юнит. Существуют разные типы юнитов, включая службу, устройство, сокет, монтирование, цель и множество других юнитов.
Systemd управляет юнитами с помощью файла конфигурации, известного как файл юнита. Следовательно, чтобы управлять вашим сервером Node.js как любой другой службой системы, вам нужно создать для него файл юнита, который в этом случае будет файлом службы.
Как только вы создали файл службы для вашего 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/