187 lines
3.7 KiB
Markdown
187 lines
3.7 KiB
Markdown
# 🚀 Быстрый старт PM2
|
||
|
||
## Запуск Backend в 4 экземплярах
|
||
|
||
### Через npm scripts (рекомендуется):
|
||
|
||
```bash
|
||
# 1. Сборка проекта
|
||
npm run build
|
||
|
||
# 2. Запуск PM2
|
||
npm run pm2:start
|
||
|
||
# 3. Проверка статуса
|
||
npm run pm2:status
|
||
```
|
||
|
||
### Через скрипты:
|
||
|
||
```bash
|
||
# Дать права на выполнение (только один раз)
|
||
chmod +x start-pm2.sh restart-pm2.sh stop-pm2.sh
|
||
|
||
# Запуск
|
||
./start-pm2.sh
|
||
|
||
# Перезапуск
|
||
./restart-pm2.sh
|
||
|
||
# Перезапуск с пересборкой
|
||
./restart-pm2.sh --build
|
||
|
||
# Перезапуск с обновлением из Git
|
||
./restart-pm2.sh --update
|
||
|
||
# Остановка
|
||
./stop-pm2.sh
|
||
```
|
||
|
||
### Через PM2 напрямую:
|
||
|
||
```bash
|
||
# Запуск
|
||
pm2 start ecosystem.config.js --env production
|
||
|
||
# Сохранение конфигурации
|
||
pm2 save
|
||
|
||
# Настройка автозапуска
|
||
pm2 startup
|
||
# Выполните команду, которую выведет pm2 startup
|
||
```
|
||
|
||
## ⚙️ Настройка автозапуска
|
||
|
||
Чтобы backend автоматически запускался при перезагрузке сервера:
|
||
|
||
```bash
|
||
# 1. Запустить процесс
|
||
npm run pm2:start
|
||
|
||
# 2. Настроить автозапуск
|
||
pm2 startup
|
||
|
||
# 3. Выполнить команду, которую выведет pm2 startup
|
||
# Например:
|
||
# sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u root --hp /root
|
||
|
||
# 4. Сохранить текущую конфигурацию
|
||
pm2 save
|
||
```
|
||
|
||
## 📊 Мониторинг
|
||
|
||
```bash
|
||
# Просмотр логов
|
||
npm run pm2:logs
|
||
|
||
# Интерактивный мониторинг
|
||
npm run pm2:monit
|
||
|
||
# Статус всех процессов
|
||
npm run pm2:status
|
||
|
||
# Детальная информация
|
||
pm2 show ospab-backend
|
||
```
|
||
|
||
## 🔄 Обновление кода
|
||
|
||
```bash
|
||
# Вариант 1: Вручную
|
||
git pull origin main
|
||
npm install
|
||
npm run build
|
||
npm run pm2:restart
|
||
|
||
# Вариант 2: Через скрипт
|
||
./restart-pm2.sh --update
|
||
```
|
||
|
||
## 🛑 Остановка
|
||
|
||
```bash
|
||
# Через npm
|
||
npm run pm2:stop
|
||
|
||
# Через скрипт
|
||
./stop-pm2.sh
|
||
|
||
# Напрямую
|
||
pm2 stop ospab-backend
|
||
pm2 delete ospab-backend
|
||
pm2 save
|
||
```
|
||
|
||
## 📝 Полезные команды
|
||
|
||
```bash
|
||
# Логи в реальном времени
|
||
pm2 logs ospab-backend --lines 100
|
||
|
||
# Очистка логов
|
||
pm2 flush
|
||
|
||
# Перезапуск без даунтайма
|
||
pm2 reload ospab-backend
|
||
|
||
# Обновление PM2
|
||
npm install -g pm2@latest
|
||
pm2 update
|
||
|
||
# Резервная копия конфигурации
|
||
pm2 save --force
|
||
```
|
||
|
||
## 🔍 Проверка работы
|
||
|
||
После запуска проверьте:
|
||
|
||
```bash
|
||
# 1. Статус процессов (должно быть 4 инстанса "online")
|
||
pm2 list
|
||
|
||
# 2. Backend доступен
|
||
curl http://localhost:5000
|
||
|
||
# 3. Логи без ошибок
|
||
pm2 logs ospab-backend --lines 50
|
||
```
|
||
|
||
## ⚠️ Устранение проблем
|
||
|
||
### PM2 не запускается
|
||
|
||
```bash
|
||
# Проверить версию Node.js
|
||
node -v
|
||
|
||
# Переустановить PM2
|
||
npm install -g pm2@latest
|
||
|
||
# Удалить старую конфигурацию
|
||
pm2 kill
|
||
rm -rf ~/.pm2
|
||
|
||
# Запустить заново
|
||
npm run pm2:start
|
||
```
|
||
|
||
### Процессы крашатся
|
||
|
||
```bash
|
||
# Посмотреть ошибки
|
||
pm2 logs ospab-backend --err
|
||
|
||
# Увеличить лимит памяти в ecosystem.config.js
|
||
# max_memory_restart: '1G'
|
||
|
||
# Уменьшить количество инстансов
|
||
# instances: 2
|
||
```
|
||
|
||
## 📚 Подробная документация
|
||
|
||
См. [PM2_SETUP.md](./PM2_SETUP.md) для детальной информации.
|