ulimit:硬限制和软限制之间的区别

dan*_*ann 104 open-files ulimit

ulimit 中的硬限制和软限制有什么区别?

对于打开文件的数量,我的软限制为 1024,硬限制为 10240。可以运行打开超过 1024 个文件的程序。什么是软限制?

Gil*_*il' 94

硬限制只能由 root 提高(任何进程都可以降低它)。所以它对安全很有用:非 root 进程不能超过硬限制。但它的不便之处在于非 root 进程不能具有比其子进程更低的限制。

进程可以随时更改软限制。所以只要进程配合就方便,但不利于安全。

软限制的典型用例是禁用核心转储 ( ulimit -Sc 0),同时保留为您正在调试的特定进程启用它们的选项 ( (ulimit -Sc unlimited; myprocess))。

ulimitshell命令是围绕着一个包装setrlimit系统调用,这样的地方,你会发现最终文件。

请注意,某些系统可能不会实施所有限制。具体来说,某些系统不支持对文件描述符的每个进程限制(Linux 支持);如果你没有,shell 命令可能是一个空操作。

  • +1 表示软限制用例。常驻集大小限制(`ulimit -m`,`RLIMIT_RSS`)是一个限制的例子,它在 Linux 上不再有效。不过,虚拟内存限制(`ulimit -v`、`RLIMIT_AS`)有效。 (7认同)
  • 现在也有一个“prlimit” shell 实用程序。 (2认同)