setrlimit(
我在 C++ 代码中使用) 来尝试将 to 设置RLIMIT_NOFILE
为RLIM_INFINITY
(getrlimit
然后将rlim_cur
&设置rlim_max
为RLIM_INFINITY
and setrlimit()
),但出现“不允许操作”错误。该代码以 root 身份运行。
甚至可以设置RLIM_INFINITY
吗RLIMIT_NOFILE
?
答案1
RLIMIT_NOFILE
的上限是由 定义的最大值/proc/sys/fs/nr_open
,并且尝试将其设置为高于该值会导致EPERM
。在短时间内(使用内核 2.6.28),可以将其设置为RLIM_INFINITY
,但这会导致某些程序出现巨大的性能问题 - 请参阅恢复提交了解详情。
这记录在EPERM
中的相应条目man setrlimit
, 和的描述/proc/sys/fs/nr_open
在man 5 proc
。