Установка PM2
| Уровень сложности | Лёгкий |
| Права root | Требуются |
| Требования | Терминал Linux |
| Категория | Установка ПО |
| Совместимость с ОС | Debian, Ubuntu, RHEL |
| Примерное время чтения | 15 мин. |
Введение
PM2 - это популярный менеджер процессов для Node.js-приложений, который позволяет запускать программы в фоновом режиме, автоматически перезапускать их при сбоях и удобно управлять сервисами через консоль.
Чаще всего PM2 используют для Node.js, однако при необходимости через него можно запускать и другие приложения, например Python3-скрипты, shell-скрипты и различные фоновые процессы. Также PM2 поддерживает автозапуск через systemd, благодаря чему процессы будут автоматически подниматься после перезагрузки сервера.
В этой статье рассмотрим установку PM2, а также базовые команды и простой пример использования.
Установка
Установка Node.js
Перед установкой PM2 необходимо установить Node.js и npm.
После установки убедитесь, что Node.js и npm работают:
node -v
npm -v
Установка PM2
Установите PM2 через npm:
npm install -g pm2
Проверяем установку:
pm2 -v
Установка на RHEL выполняется аналогично.
Пример использования
Создадим простой HTTP-сервер.
Создайте файл:
nano app.js
Содержимое файла:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('PM2 работает!\n');
});
server.listen(3000, () => {
console.log('Сервер запущен на порту 3000');
});
Запускаем приложение:
pm2 start app.js
После запуска PM2 покажет список процессов.
Проверить состояние можно командой:
pm2 list
Теперь откройте в браузере:
http://IP_СЕРВЕРА:3000
Либо выполните:
curl http://127.0.0.1:3000
Пример запуска Python3
PM2 умеет запускать не только Node.js-приложения.
Создадим простой Python-скрипт:
nano test.py
Содержимое:
while True:
print("PM2 запустил Python")
Запуск:
pm2 start test.py --interpreter python3
Использование ecosystem.config.js
Также PM2 поддерживает запуск приложений через конфигурационные файлы ecosystem.config.js. Такой способ особенно удобен, если необходимо хранить параметры запуска, переменные окружения, количество процессов, директории и другие настройки в одном месте.
Создадим конфигурационный файл:
nano ecosystem.config.js
Пример содержимого:
module.exports = {
apps: [
{
name: "test-app",
script: "./app.js",
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: "300M",
env: {
NODE_ENV: "production",
PORT: 3000
}
}
]
}
Запуск приложения через конфигурационный файл
pm2 start ecosystem.config.js
Применение изменений
После изменения конфигурации выполните:
pm2 restart ecosystem.config.js
Через конфигурационный файл PM2 позволяет удобно задавать:
- имя процесса;
- путь к приложению;
- переменные окружения;
- количество копий приложения;
- лимиты памяти;
- автоматический перезапуск;
- рабочую директорию;
- аргументы запуска;
- логирование;
- режим cluster;
- интервал перезапуска;
- пользователя запуска и другие параметры.
Автозапуск PM2
Чтобы процессы автоматически запускались после перезагрузки сервера, выполните:
pm2 startup
PM2 покажет команду, которую нужно выполнить от имени root.
После этого сохраните текущий список процессов:
pm2 save
Полезные команды
Список процессов
pm2 list
Просмотр логов
pm2 logs
Логи конкретного процесса:
pm2 logs app
Остановка процесса
pm2 stop app
Перезапуск процесса
pm2 restart app
Удаление процесса
pm2 delete app
Мониторинг ресурсов
pm2 monit
Информация о процессе
pm2 info app
Сохранение текущей конфигурации
pm2 save
Восстановление сохранённых процессов
pm2 resurrect
Заключение
PM2 значительно упрощает запуск и управление фоновыми приложениями на сервере. С его помощью можно быстро организовать автозапуск сервисов, мониторинг процессов и автоматический перезапуск при сбоях. Благодаря поддержке systemd и удобному набору команд PM2 подходит как для небольших проектов, так и для production-серверов с высокой нагрузкой.









