Monit требует ручного перезапуска, чтобы получить максимальное количество открытых файлов для запуска процесса, ошибка?

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

погрузимся в проблему:

Я запускаю приложение в Ubuntu 14.04 с использованием Monit V5.6 Развертывание приложения и Monit выполняется с использованием сценариев Chef с AWS Opsworks, который работает отлично.

Проблема заключается в том, что после этого Monit запускает приложение, используя следующий синтаксис:

start program = "/bin/sh -c 'ulimit -n 150000; <some more commands here which are not intersting>'" as uid <user> and gid <user_group>

Это действительно запускает приложение, используя правильного пользователя, но проблема в том, что max open files для процесса показывает 4096 вместо числа, установленного в limits.conf

Просто чтобы прояснить, я установил следующее в /etc/security/limits.conf

root hard nofile 150000
root soft nofile 150000
*    hard nofile 150000
*    soft nofile 150000

Более того, если я останавливаю приложение, затем выполняю перезапуск службы, а затем запускаю приложение, максимальные значения открытых файлов принимаются правильно, и я вижу 150000. Если я затем повторно развертываю приложение без перезагрузки экземпляра, то это происходит снова, и я придется вручную перезапустить монитор снова.

Также, если я запускаю приложение, используя следующий синтаксис для имитации Monit:

sudo -H -u <user> /bin/sh -c 'ulimit -n 150000; <more commands here>'

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

Любая помощь на этот счет или мысли будет принята с благодарностью. Спасибо!

PS Я также рассмотрел следующие статьи:

https://serverfault.com/questions/797650/centos-monit-ulimit-not-working https://lists.nongnu.org/archive/html/monit-general/2010-04/msg00018.html

но так как ручной перезапуск Monit заставляет это работать, то я ищу решение без изменения сценариев инициализации.

0 ответов

Другие вопросы по тегам