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