Как использовать PM2 для Node.js
PM2 – это инструмент для управления процессами Node.js позволяющий кластеризировать приложение и гибко распределять нагрузку между ядрами процессора. В основном применяется в средах, где необходимо запустить приложение на Node.js и забыть о нём (с остальными языками тоже можно использовать, но об этом в другой раз).
В качестве примера используется VPS-хостинг с предустановленной Ubuntu 20.04.3 LTS. Имейте в виду, что принципиальной разницы между несколькими последними версиями Ubuntu не должно быть.
Если у вас нет операционки Linux под рукой, советую создать Linux контейнер для тестов через Docker.
Вам понадобится предварительно установить Node.js и написать простейшее веб приложение. Как это сделать описано в другой статье.
Официальная инструкция рекомендует устанавливать PM2 как пакет для NPM или Yarn:
sudo npm install pm2@latest -g
...
sudo yarn global add pm2
Давайте рассмотрим как запустить наше тестовое приложение через PM2.
Выполните команду:
sudo pm2 start /home/index.js
Результат успешного запуска:
[PM2] PM2 Successfully daemonized
[PM2] Starting /home/index.js in fork_mode (1 instance)
[PM2] Done.
Проверим список запущенных приложений и попутно узнаем потребление памяти и процессора:
sudo pm2 list
Результат:
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ index │ fork │ 0 │ online │ 0% │ 46.4mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
Чтобы остановить все активные приложения используйте команду:
sudo pm2 stop all
Или чтобы остановить конкретное приложение (в нашем случае id = 0):
sudo pm2 stop 0
Результат:
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ index │ fork │ 0 │ stopped │ 0% │ 0b │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
Чтобы PM2 автоматически запускался при старте системы и поднимал наше приложение, необходимо выполнить следующую команду:
sudo pm2 startup systemd
Чтобы отключить автоматический запуск при старте системы:
sudo pm2 unstartup systemd
Шпаргалка по командам PM2 доступна по этой ссылке.
Похожие публикации