Запуск 12.04.3 LTS
Пользователь, отправляющий пакетное задание в очередь, получал
'too many open files error'
. Исследование предложило изменить файл /etc/security/limits.conf
, который был выполнен для всех пользователи и для root по отдельности задают жесткие ограничения 65536. ulimit -a
возвращает ограничение 65536. Кроме того, для файлов /etc/pam.d/ common-session
, common-session-noninteractive
, login и ssh добавлен требуемый сеанс строки pam_limits.so
.
Проблема сохраняется и может быть замечена при просмотре файла /proc/pid/limits
для процессов, перечисленных с использованием lsof
. Здесь предел nofile
для процессов, перечисленных как sh под командой, остается как мягкий предел 1024 и жесткий предел 4096, которые были исходными настройками системы по умолчанию. Ограничения для других процессов, например, с командой grep
, изменены на новый предел 65536.
Как написано, выполняемый скрипт требует короткого пакета большого количества открытых файлов, из которых отдельные записи собираются и переносятся в другой составной файл. Ошибка всегда происходит в 512-м файле, который, кажется, указывает на то, что он достигает предела.
Что нужно изменить, чтобы увеличить пределы для команд, попадающих под sh?