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

Установим диспетчер процессов 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, и мы можем настроить обратный прокси-сервер.
Более подробно тут