您可以将 RLIMIT_NOFILE 设置为 RLIM_INFINITY 吗?

您可以将 RLIMIT_NOFILE 设置为 RLIM_INFINITY 吗?

setrlimit(我在 C++ 代码中使用) 来尝试将 to 设置RLIMIT_NOFILERLIM_INFINITYgetrlimit然后将rlim_cur&设置rlim_maxRLIM_INFINITYand setrlimit()),但出现“不允许操作”错误。该代码以 root 身份运行。

甚至可以设置RLIM_INFINITYRLIMIT_NOFILE

答案1

RLIMIT_NOFILE的上限是由 定义的最大值/proc/sys/fs/nr_open,并且尝试将其设置为高于该值会导致EPERM。在短时间内(使用内核 2.6.28),可以将其设置为RLIM_INFINITY,但这会导致某些程序出现巨大的性能问题 - 请参阅恢复提交了解详情。

这记录在EPERM中的相应条目man setrlimit, 和的描述/proc/sys/fs/nr_openman 5 proc

相关内容