Назад | Перейти на главную страницу

Можем ли мы установить ulimit в файле / etc / sysconfig / init для применения значения во время загрузки

Мне нужно установить значение ulimit во время загрузки для всех моих служб. У меня есть значения, установленные в /etc/sysconfig/limits.conf, но эти значения не применяются во время загрузки, и по умолчанию требуется 1024.

Я установил значения в limits.conf, а также проверил, содержит ли /etc/pam.d/* «необходимые записи pam_limits.so» и даже /etc/security/limits.d/90-nproc.conf не имеет значения по умолчанию записи.

Теперь я нашел другой способ включить значение во время загрузки, я наткнулся на файл / etc / sysconfig / init. Когда я устанавливаю значение в этом файле, все службы получают ожидаемое значение во время загрузки.

Теперь я не уверен, как это повлияет на сервер и какие вещи следует игнорировать при настройке в этом файле / etc / sysconfig / init. Также есть ли альтернатива, кроме этого файла или методов, упомянутых выше.

Улимиты не являются специфическими для служб или общесистемными, они специфичны для отдельных учетных записей. Мягкий предел в /etc/security/limits.conf должно быть тем, что отображается по умолчанию при запуске службы; похоже, что в вашем случае этого не происходит, поэтому я бы начал смотреть на точечные файлы для пользователей, запускающих указанные службы, или на фактический сценарий инициализации для рассматриваемых служб . У меня такое ощущение, что ваш ulimit установлен в одном из этих двух мест и, таким образом, отменяет /etc/security/limits.conf ценности.

Файл /etc/security/limits.conf используется PAM, но PAM используется, когда пользователь входит в систему. Однако когда службы запускаются, они не проходят через PAM, поэтому limits.conf не помогает. Службы запускаются системой инициализации, и их настройки зависят от используемой системы. Если вы используете выскочку, его можно настроить в /etc/sysconfig/init общесистемный или внутри /etc/sysconfig/<servicename> за услугу. В мире systemd ulimit можно установить в служебных файлах с помощью usint. Limit<type>=, Я не знаю, как это сделать в масштабе всей системы. С OpenRC вы можете установить rc_ulimit= на службу или в масштабе всей системы в /etc/rc.conf.

Я использовал тот метод, о котором вы говорите, чтобы установить ulimit и umask для файлов, созданных пользователем Apache. То есть я редактировал /etc/init.d/httpd и включал umask и ulimit -s конфигурация, которая решила мою проблему, поэтому я думаю, что это хорошее решение. Никакого воздействия, кроме ожидаемого, не произошло.