pm2 Демон умирает через несколько часов
У меня есть приложение 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 ответ
Решение
Оказывается, это было вызвано ограничением ресурсов, наложенным моим хостинг-провайдером. Я все еще не понимаю, почему ничего не было зарегистрировано, чтобы указать, что произошло, но я отмечаю это как ответ, так как я нашел основную причину.