Установка PM2 (демон для Node.js)

Опубликовано admin в

Официальная документация

Установим диспетчер процессов PM2, предназначенный для приложений Node.js. PM2 позволяет преобразовывать приложения в демонов, чтобы они работали как службы в фоновом режиме.

Используйте npm для установки последней версии PM2 на своем сервере:

sudo npm install pm2@latest -g

Опция -g указывает npm выполнить глобальную установку модуля, чтобы он был доступен в масштабе всей системы.

Вначале используем команду pm2 для запуска вашего приложения hello.js в фоновом режиме:

pm2 start hello.js

Также она добавит ваше приложение в список процессов PM2, которы йвыводится при каждом запуске приложения:

Как видите, PM2 автоматически назначает App name (по имени файла, без расширения .js и идентификатор PM2 id. PM2 также обслуживает и другие данные, в том числе PID процесса, данные о текущем состоянии и использовании памяти.

Приложения, запускаемые через PM2, автоматически перезапускаются в случае сбоя или прекращения работы приложения, но мы можем выполнить дополнительный шаг, чтобы запускать приложение при запуске системы с помощью субкоманды startup. Эта субкоманда генерирует и настраивает скрипт запуска PM2 и управляемых им процессов при загрузке сервера:

pm2 startup systemd

Последняя строка результатов содержит команду, которую нужно запустить с привилегиями суперпользователя для настройки запуска PM2 при загрузке:

Запустите команду из результатов, указав свое имя пользователя вместо sammy:

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u sammy --hp /home/sammy

Дополнительно мы можем сохранить список процессов PM2 и соответствующие среды:

pm2 save

Теперь вы создали блок systemd, который запускает pm2 для вашего пользователя при загрузке. Этот экземпляр pm2 запускает hello.js.

Запустите службу с помощью команды systemctl:

sudo systemctl start pm2-sammy

Проверьте состояние блока systemd:

systemctl status pm2-sammy

Подробный обзор systemd можно найти в документе «Основы работы с Systemd: работа со службами, блоками и журналом».

В дополнение к уже описанным субкомандам PM2 предоставляет много субкоманд, позволяющих управлять информацией о ваших приложениях и искать такую информацию.

Остановите приложение с помощью этой команды (укажите имя приложения PM2 или id):

pm2 stop app_name_or_id

Перезапустите приложение:

pm2 restart app_name_or_id

Выведем список приложений, управление которыми осуществляет PM2:

pm2 list

Получим информацию об определенном приложении по App name:

pm2 info app_name

Монитор процесса PM2 запускается с помощью субкоманды monit. При этом отображается состояние приложение, использование ресурсов ЦП и использование памяти:

pm2 monit

При запуске команды pm2 без аргументов отображается страница справки с примерами использования.

Теперь ваше приложение Node.js запущено и управляется PM2, и мы можем настроить обратный прокси-сервер.

Более подробно тут

Рубрики: Node