[python]的resource
中的[[soft和hard限制之间的实际区别是什么?
resource
最后,是的,我已经阅读了软限制和硬限制的文档,但实际上仍然不了解有什么区别:可以使用下面描述的setrlimit()函数来限制资源的使用。每个资源由一对限制控制:一个软限制和一个硬限制。软极限是当前极限,并且可以随着时间的流逝而降低或升高。软限制永远不能超过硬限制。硬限制可以降低到大于软限制的任何值,但不能提高。 (只有具有超级用户有效UID的进程才能提出硬限制。)
import resource
soft_limit,hard_limit=resource.getrlimit(resource.RLIMIT_DATA)
# set soft limit
resource.setrlimit(resource.RLIMIT_DATA, (1024,hard_limit))
# set soft and hard limit
resource.setrlimit(resource.RLIMIT_DATA, (1024,1024))
显然使用了resource
中的setrlimit
。通过查看GNU的libc手册,可以说出当前(软性)和硬性限制:与资源相关联的每个进程有两个限制:当前限制
当前限制是系统不允许使用的值超过。也称为“软限制”,因为受限制的过程通常可以随意提高当前限制。最大限制
最大限制是允许进程设置其当前限制的最大值。它也被称为“硬限制”,因为流程无法绕开它。进程可以降低自己的最大限制,但是只有超级用户可以增加最大限制。
所以tl:dr是软的,因为一个过程可以更改限制,而辛苦的是因为它不能更改,区别在添加的文档的最后一个括号中指出:
((只有具有超级用户有效UID的进程才能提出硬限制。)