У меня есть веб-приложение Java, настроенное для запуска в сценарии в /etc/init.d/application. Приложение выдает ошибку "слишком много открытых файлов", но если я выполню тот же сценарий от своего пользователя, у него не будет никаких проблема.
Я уже увеличил лимиты в /etc/security/limits.conf, но я не понимаю, почему это происходит только при запуске машины (я пробовал много раз)
Может ли это быть связано с уровнем запуска, на котором выполняется сценарий?
ОС - Redhat 5.4.
Чтобы исправить это, вам необходимо выполнить команду как часть сценария запуска.
Предполагая, что это сценарий bash, который затем выполняет ваше приложение, добавьте ulimit -n 8192
как приказ к нему. Если это программа на Java, используйте Runtime.getRuntime().exec("ulimit -n 8192")
при запуске.
В /etc/security/limits.conf
файл влияет только на нормальный вход. Если вы хотите установить ограничения для сценария запуска (который никогда не выполняет нормального входа в систему), вы должны сделать это в самом сценарии.