Как обычно /etc/security/limits.h
работает только при входе в оболочку.
Как насчет того, чтобы выполнить форк процесса в Linux, где значение Max open files
из /proc/PID/limits
контролируется?
Насколько я понимаю, такие настройки в дочерней вилке наследуются от родительской. Кроме того, вы можете установить информацию об ограничениях в своем процессе с помощью системных вызовов getrlimit (), setrlimit ().
Файл /etc/security/limits.conf
используется pam_limits
.
Команда ulimit
это встроенная команда оболочки, которая может изменять мягкие и жесткие ограничения в пределах пределы устанавливается указанным файлом конфигурации PAM (если вы не являетесь пользователем root).
Вы можете применить эти ограничения для сеансов входа в систему, ssh и т. Д. Затем PAM применяет ограничения на процессы (и разветвленные процессы), запущенные в этом сеансе. Они передаются по наследству.
Форк унаследует среду от родителя, который ее разветвил ... если у него есть ограничение на fd, его следует применить.