На главную

DevOps и серверы

Конфиг PM2

Собирает ecosystem.config.js: режим fork или cluster, переменные окружения, лимит памяти, логи и перезапуск по расписанию.

Приложения

ecosystem.config.js

// ecosystem.config.js
module.exports = {
  "apps": [
    {
      "name": "api",
      "script": "dist/main.js",
      "exec_mode": "fork",
      "instances": 1,
      "autorestart": true,
      "out_file": "/var/log/pm2/api-out.log",
      "error_file": "/var/log/pm2/api-error.log",
      "merge_logs": true,
      "log_date_format": "YYYY-MM-DD HH:mm:ss Z"
    }
  ]
};

Команды

pm2 start ecosystem.config.js
pm2 logs api
pm2 restart api --update-env
pm2 save
pm2 startup   # выведет команду, которую надо выполнить от root

На что обратить внимание

  • · `pm2 save` + `pm2 startup` — единственный способ пережить перезагрузку сервера: без них список приложений теряется.
  • · `--update-env` нужен всегда, когда менялись переменные окружения: без него PM2 перезапустит процесс со старым окружением.