PM2 запускает новый демон после сбоя процесса и не перезапускает процессы - PullRequest
0 голосов
/ 02 марта 2020

Мое приложение "prod" не восстановлено на SIGINT. Вместо этого PM2 дает сбой всем другим приложениям и перезапускает демон.

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

Мои журналы выглядят так:

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(process:3626): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
2020-03-02T21:02:37: PM2 log: App name:prod id:4 disconnected
2020-03-02T21:02:37: PM2 log: App [prod:4] exited with code [0] via signal [SIGSEGV]
2020-03-02T21:02:37: PM2 log: App [prod:4] starting in -cluster mode-
2020-03-02T21:02:37: PM2 log: App [prod:4] online
2020-03-02T21:02:45: PM2 log: ===============================================================================
2020-03-02T21:02:45: PM2 log: --- New PM2 Daemon started ----------------------------------------------------
2020-03-02T21:02:45: PM2 log: Time                 : Mon Mar 02 2020 21:02:45 GMT+0100 (Central European Standard Time)
2020-03-02T21:02:45: PM2 log: PM2 version          : 4.2.0
2020-03-02T21:02:45: PM2 log: Node.js version      : 11.10.0
2020-03-02T21:02:45: PM2 log: Current arch         : x64
2020-03-02T21:02:45: PM2 log: PM2 home             : /home/ubuntu/.pm2
2020-03-02T21:02:45: PM2 log: PM2 PID file         : /home/ubuntu/.pm2/pm2.pid
2020-03-02T21:02:45: PM2 log: RPC socket file      : /home/ubuntu/.pm2/rpc.sock
2020-03-02T21:02:45: PM2 log: BUS socket file      : /home/ubuntu/.pm2/pub.sock
2020-03-02T21:02:45: PM2 log: Application log path : /home/ubuntu/.pm2/logs
2020-03-02T21:02:45: PM2 log: Worker Interval      : 30000
2020-03-02T21:02:45: PM2 log: Process dump file    : /home/ubuntu/.pm2/dump.pm2
2020-03-02T21:02:45: PM2 log: Concurrent actions   : 2
2020-03-02T21:02:45: PM2 log: SIGTERM timeout      : 1600
2020-03-02T21:02:45: PM2 log: ===============================================================================
2020-03-02T21:02:45: PM2 log: App [pm2-health:0] starting in -fork mode-
2020-03-02T21:02:45: PM2 log: App [pm2-health:0] online

Вот мой экосистемный файл для "prod"

module.exports = {
  apps : [{
    name: 'prod',
    script: 'index.js',
    args: ["--color"],
    instances: 4,
    autorestart: true,
    out_file: "logs/prod.log",
    node_args: "--max-old-space-size=2048"
  }]
};

Мой монитор выглядит так:

│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 6 │ beta │ default │ 1.0.0 │ fork │ 4031 │ 5m │ 0 │ online │ 0% │ 154.8mb │ ubuntu │ enabled │
│ 1 │ prod │ default │ 1.0.0 │ cluster │ 3619 │ 5m │ 0 │ online │ 75% │ 372.1mb │ ubuntu │ disabled │
│ 2 │ prod │ default │ 1.0.0 │ cluster │ 3626 │ 5m │ 0 │ online │ 5% │ 361.4mb │ ubuntu │ disabled │
│ 3 │ prod │ default │ 1.0.0 │ cluster │ 3635 │ 5m │ 0 │ online │ 0% │ 297.1mb │ ubuntu │ disabled │
│ 4 │ prod │ default │ 1.0.0 │ cluster │ 3644 │ 5m │ 0 │ online │ 5% │ 510.0mb │ ubuntu │ disabled │
│ 5 │ sandbox │ default │ 1.0.0 │ cluster │ 3970 │ 5m │ 0 │ online │ 0% │ 132.2mb │ ubuntu │ enabled │
└─────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Пожалуйста, помогите. Это большая проблема, потому что он отключил мой сервер без возможности автоматического восстановления.

Я обновил до последней версии PM2, но понизил его, потому что это вызывало проблему, описанную выше. Тем не менее, это ничего не меняет

1 Ответ

0 голосов
/ 09 марта 2020

Эта проблема была решена путем помещения PM2 в docker. Сейчас все идет гладко. Проверьте Docker интеграция: https://pm2.keymetrics.io/docs/usage/docker-pm2-nodejs/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...