对于打开的文件数,我的软限制为1024,硬限制为10240。
可以运行程序打开超过1024个文件。软限制是什么?
#1 楼
硬限制只能由root提高(任何进程都可以降低它)。因此,这对安全性很有用:非根进程不能超过硬限制。但这是不方便的,因为非根进程的限制不能低于其子进程的限制。软限制可以随时由进程更改。因此,只要流程能够合作就很方便,但对安全性却没有好处。正在重新调试(
ulimit -Sc 0
)。系统可能未实现所有限制。具体来说,某些系统不支持文件描述符的每个进程限制(Linux则支持)。如果您没有,则shell命令可能是空操作。评论
+1为软限制用例。驻留集大小限制(ulimit -m,RLIMIT_RSS)是一个限制示例,该限制在Linux上不再有效。但是,虚拟内存限制(ulimit -v,RLIMIT_AS)有效。
–亚当·扎尔克曼(Adam Zalcman)
2012年1月20日17:53
@Gilles,您的意思是不重新启动过程,当我们更改软限制时,它可以立即生效吗?
–瑞安
13年6月29日在2:52
@Ryan是的,程序可以通过调用setrlimit(在硬限制允许的范围内,除非以root身份运行)随时更改其自身的软限制。大多数程序没有让用户执行此命令的命令,但是您可以尝试使用调试器将其附加到程序上,并发出setrlimit调用,或者在Linux下,您可以调用prlimit(我不知道。任何shell实用程序)。
–吉尔斯'所以-不再是邪恶的'
2013年6月29日上午8:27
现在也有一个prlimit shell实用程序。
–telcoM
19 Mar 26 '19在9:16
评论
您在谈论ulimit -n吗?尝试运行具有非常低值的shell(bash -c'ulimit -n 4; exec 3> a; exec 4> b; exec 5> c')。输出是什么?