Запуск сервера через PM2

В этой статье описаны шаги для запуска программного комплекса через менеджер процессов PM2.

Установка PM2

На хосте с программным комплексом необходимо установить PM2 командой:

$sudo npm install -g pm2

Конфигурация акторов

Для всех акторов необходимо выставить режим in-memory в файле /etc/saymon/actors.json, например:

"RestServerWorkerActor": {
    "mode": "in-memory",
    "onCrash": "respawn"
  }

Отключение сервиса

Если ранее на хосте программный комплекс запускался как сервис, то данный сервис необходимо остановить и отключить.

Команда для остановки сервиса:

$sudo service saymon-server stop

Команда для отключения сервиса для systemctl:

$sudo systemctl disable saymon-server

Команда для отключения сервиса для init:

$rm /etc/init/{saymon-server.conf,saymon-server-binary.conf}

Запуск через PM2

Запуск программного комплекса через PM2 осуществляется командой:

$sudo -Hu saymon pm2 start /usr/local/saymon/server/ecosystem.config.js

Чтобы сервисы стартовали автоматически при запуске операционной системы необходимо выполнить команду:

$sudo -Hu saymon pm2 startup

Настройка логов

Логи по каждому актору пишутся в папку /home/saymon/.pm2/logs.

Для настройки ротации логов необходимо создать файл с настройками /etc/logrotate.d/pm2-saymon и добавить в него следующее содержимое:

/home/saymon/.pm2/pm2.log /home/saymon/.pm2/logs/*.log {
  maxsize 100M
  daily
  missingok
  rotate 3
  compress
  notifempty
  copytruncate
}

Следующая команда очищает лог-файлы:

$sudo -Hu saymon pm2 flush

Работа с акторами

О статусе акторов можно узнать, выполнив команду

$sudo -Hu saymon pm2 status

Мониторинг работы акторов в режиме реального времени:

$sudo -Hu saymon pm2 monit

Для остановки/запуска/перезапуска конкретного или всех акторов необходимо использовать следующие команды:

$sudo -Hu saymon pm2 start all - запуск всех акторов
$sudo -Hu saymon pm2 restart all - перезапуск всех акторов
$sudo -Hu saymon pm2 stop all - остановка всех акторов

$sudo -Hu saymon pm2 start 4 5 - запуск акторов с номерами 4 и 5
$sudo -Hu saymon pm2 restart 4 5 - перезапуск акторов с номерами 4 и 5
$sudo -Hu saymon pm2 stop 4 5 - остановка акторов с номерами 4 и 5

Для масштабирования акторов следует использовать команду:

$sudo -Hu saymon pm2 scale saymon-rest-server 4

где:

  • saymon-rest-server - имя актора;

  • 4 - желаемое количество акторов.

При этом перезапуск программного комплекса не требуется.