pm2 Демон умирает через несколько часов - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть приложение Node.js / Express, которое реализует набор API REST, и я пытаюсь использовать pm2 для управления его развертыванием.Приложение запускается нормально (с использованием pm2 start ecosystem.config.js) и остается доступным в течение нескольких часов, но демон pm2 всегда в конечном итоге умирает без каких-либо ошибок в журналах.

Несколько замечаний:

  • Я работаю в среде общего хостинга CentOS 7.
  • Каталог /var/log пуст и journalctl не возвращает никаких записей.
  • Я подтвердил, что системане перезагружается.
  • Единственный установленный мной модуль pm2 pm2-logrotate.
  • Я перехватываю и регистрирую SIGINT, SIGTERM, SIGQUIT и SIGABRT сигнализирует, но эта логика, кажется, никогда не срабатывает (это происходит, если я запускаю pm2 stop).
  • Если я запускаю pm2 list, он просто перезапускает демон и показывает пустой список приложений.

Вот мои ecosystem.config.js:

module.exports = {
  apps: [
    {
      kill_timeout: 60000,
      listen_timeout: 10000,
      log: 'logs/my-app.log',
      name: 'my-app',
      script: 'dist/index.js',
      wait_ready: true,

      instances: 1,
      autorestart: true,
      watch: false,
      max_memory_restart: '1G',
      env: {
        NODE_ENV: 'development'
      },
      env_production: {
        NODE_ENV: 'production'
      }
    }
  ]
};

Вот pm2.log:

2019-04-24T19:20:24: PM2 log: ===============================================================================
2019-04-24T19:20:24: PM2 log: --- New PM2 Daemon started ----------------------------------------------------
2019-04-24T19:20:24: PM2 log: Time                 : Wed Apr 24 2019 19:20:24 GMT-0700 (Mountain Standard Time)
2019-04-24T19:20:24: PM2 log: PM2 version          : 3.5.0
2019-04-24T19:20:24: PM2 log: Node.js version      : 10.5.0
2019-04-24T19:20:24: PM2 log: Current arch         : x64
2019-04-24T19:20:24: PM2 log: PM2 home             : /home/myuser/.pm2
2019-04-24T19:20:24: PM2 log: PM2 PID file         : /home/myuser/.pm2/pm2.pid
2019-04-24T19:20:24: PM2 log: RPC socket file      : /home/myuser/.pm2/rpc.sock
2019-04-24T19:20:24: PM2 log: BUS socket file      : /home/myuser/.pm2/pub.sock
2019-04-24T19:20:24: PM2 log: Application log path : /home/myuser/.pm2/logs
2019-04-24T19:20:24: PM2 log: Process dump file    : /home/myuser/.pm2/dump.pm2
2019-04-24T19:20:24: PM2 log: Concurrent actions   : 2
2019-04-24T19:20:24: PM2 log: SIGTERM timeout      : 1600
2019-04-24T19:20:24: PM2 log: ===============================================================================
2019-04-24T19:20:24: PM2 log: App [pm2-logrotate:0] starting in -fork mode-
2019-04-24T19:20:24: PM2 log: App [pm2-logrotate:0] online
2019-04-24T19:20:24: PM2 log: App [my-app:1] starting in -fork mode-
2019-04-24T19:20:28: PM2 log: App [my-app:1] online

Вот pm2-logrotate-out.log:

"/home/myuser/.pm2/logs/my-app-out-1__2019-04-25_00-00-00.log" has been created
"/home/myuser/my-app/logs/my-app-1__2019-04-25_00-00-00.log" has been created

Любая идеячто вызывает эту проблему или как я могу отладить ее дальше?

1 Ответ

0 голосов
/ 03 мая 2019

Оказывается, это было вызвано ограничением ресурсов, наложенным моим хостинг-провайдером. Я все еще не понимаю, почему ничего не было зарегистрировано, чтобы указать, что произошло, но я отмечаю это как ответ, так как я нашел основную причину.

...