Содержание
Установка на сервер
Для установки необходимо выполнить следующую команду:
npm install pm2 -g
Управление процессами
Для того, чтобы посмотреть запущенные процессы необходимо ввести команду
pm2 status

И так, мы видим процессы, которые управляются PM2. А теперь о ключевых параметрах, знание которых пригодится нам в работе.
- id – Идентификатор процесса
- pid – Идентификатор процесса в памяти (можно найти по значению через утилиту htop)
- status – Текущий статус процесса
- mem – Количество ОЗУ выделенного под процесс
Основные команды
Управление процессами происходит довольно просто, достаточно обратиться к PM2, выбрать желаемую операцию и указать id процесса (смотреть выше).
pm2 операция id
И так, основные операции:
start – запускает процесс
stop – останавливет процесс
delete – удаляет процесс и завершает его выполнение
restart – перезапускает процесс (необходимо использовать если вы произвели изменения в проекте, например, пересобрали приложение и хотите чтобы изменения вступили в силу)
При свежеустановленном менеджере список с процессами будет пустой, далее в статье мы разберемся как запустить тот или иной процесс на примере Next.js и Django.
Запуск приложений на Node JS (React, Next)
Чтобы запустить Node JS приложение необходимо перейти в корневую директорию проекта и выполнить следующую команду:
pm2 start npm --name frontend -- start
В данном случае мы используем стандартную операцию start и следующие флаги:
–name – имя приложения которое будет отображаться в менеджере процессов (Пишем сам флаг и через пробел указываем название)
–start – вызывается команда старт, которая прописана в package.json вашего фронтенд приложения, что означает запуск предварительно собранного приложения (Если вы не собрали приложение сделайте это прописав команду npm run build в директории вышего проекта)
Префикс npm в начале команды означает, что мы запускаем приложение на Node.js
Запуск Django приложения
Для того, чтобы запустить Django приложение необходимо создать конфигурационный файл в папке с проектом под названием echosystem.config.js и заполнить его следующим содержимым
module.exports = {
apps : [{
name: 'backend-gunicorn',
script: ' gunicorn core.wsgi -w 2 --threads=4 --bind 0.0.0.0:8000; ',
merge_logs: true,
autorestart: true,
log_file: "var/www/html/logs/combined.outerr.log",
out_file: "var/www/html/logs/out.log",
error_file: "var/www/html/logs/err.log",
log_date_format : "YYYY-MM-DD HH:mm Z",
append_env_to_name: true,
watch: false,
max_memory_restart: '4G',
}],
};После того, как файл был сконфигурирован введите команду( для запуска, необходимо находится в той директории где лежит данный файл ) :
pm2 start echosystem.config.json
Теперь ваше Django приложение запущено в PM2.
Автозапуск PM2
По умолчанию PM2 сам не перезапускается.
Для того, чтобы, например после перезагрузки сервера, не приходилось каждый раз запускать PM2 в ручном режиме, можно включить автозагрузку, командой:
pm2 startup
Автозагрузку включили, теперь нужно сохранить в конфигурации PM2, какие процессы он будет запускать. Для это запускаем необходимые нам процессы, например бэкэнд на django и фронтэенд на react js(инструкции по запуску указаны выше).

И сохраняем конфигурацию, командой:
pm2 save
Готово! Теперь ваши процессы будут автоматически запускаться после перезагрузки сервера.
Отключение автозапуск PM2
Чтобы отключить и удалить текущую конфигурацию запуска:
pm2 unstartup
