Почему Monit создает zombie процесс ruby (Rails+Puma)?
Добрый день! Возникла проблема на production при мониторинге процессов Rails приложения c сервером Puma. Для мониторинга и автозапуска использую Monit. Он успешно запускает Puma-сервер, worker'ы запускаются, начинают отжирать ресурсы, как положенно, но затем, спустя секунд 20, worker'ы становятся zombie с нулями ресурсов, и затем пытаются снова запуститься, и всё переходит в замкнутый цикл — ресурсы есть — зомби — ресурсы есть. Соответственно приложение на запросы не отвечает. Вот скрипт для Monit в /etc/monit/conf.d/puma.monit:
check process puma with pidfile /usr/local/src/my_site/shared/tmp/puma.pid group puma start program = "/bin/su username -c 'cd /usr/local/src/my_site/current && ( RACK_ENV=production /usr/bin/env bundle exec puma -C /usr/local/src/my_site/shared/config/puma.rb --daemon )'" stop program = "/bin/su username -c 'cd /usr/local/src/my_site/current && ( bundle exec pumactl -P /usr/local/src/my_site/shared/tmp/puma.pid stop)'"
OS — Linux 3.13.0-042stab111.12 (Ubuntu 14.04, x86_64, English)
Monit version 5.14
Если же делать запуск Puma вручную из консоли от user'a, то все работает прекрасно, но естественно нет мониторинга и автозапуска после ребута сервера. (cd /usr/local/src/my_site/current && ( RACK_ENV=production /usr/bin/env bundle exec puma -C /usr/local/src/my_site/shared/config/puma.rb --daemon )
Может кто-то сталкивался с такой проблемой, буду очень благодарен за совет? Курил маны, гуглил форумы очень долго — вроде настроил все верно…
check process puma with pidfile /usr/local/src/my_site/shared/tmp/puma.pid group puma start program = "/bin/su username -c 'cd /usr/local/src/my_site/current && ( RACK_ENV=production /usr/bin/env bundle exec puma -C /usr/local/src/my_site/shared/config/puma.rb --daemon )'" stop program = "/bin/su username -c 'cd /usr/local/src/my_site/current && ( bundle exec pumactl -P /usr/local/src/my_site/shared/tmp/puma.pid stop)'"
OS — Linux 3.13.0-042stab111.12 (Ubuntu 14.04, x86_64, English)
Monit version 5.14
Если же делать запуск Puma вручную из консоли от user'a, то все работает прекрасно, но естественно нет мониторинга и автозапуска после ребута сервера. (cd /usr/local/src/my_site/current && ( RACK_ENV=production /usr/bin/env bundle exec puma -C /usr/local/src/my_site/shared/config/puma.rb --daemon )
Может кто-то сталкивался с такой проблемой, буду очень благодарен за совет? Курил маны, гуглил форумы очень долго — вроде настроил все верно…
Похожие публикации
Как управлять monit в системах с systemd, например на новой debian 8?
Нет комментариев