为什么 ulimit -n 修改硬限制

为什么 ulimit -n 修改硬限制

检查当前 shell 上的打开文件(软)限制

/home/pkaramol
$  ulimit -n
1024

检查硬限制

/home/pkaramol
$ ulimit -n -H
1048576

将(软)限制设置为硬限制值并验证其是否有效:

/home/pkaramol
$ ulimit -n hard
/home/pkaramol
$ ulimit -n
1048576

问题是为什么下面的命令会修改两个都 难的柔软的限制,如果没有提供开关,则默认是在软限制上进行操作

/home/pkaramol
$ ulimit -n 2048
/home/pkaramol
$ ulimit -n 
2048
/home/pkaramol
$ ulimit -n -H
2048

硬限制是在什么时候降低到的2048

答案1

如果它ulimit内置于bashshell 中,则不指定-H-S不指定环境限制将设置硬资源限制和软资源限制。

这在手册中有记录bash

ulimit [-HSabcdefiklmnpqrstuvxPT [limit]]

在允许此类控制的系统上,提供对 shell 及其启动的进程可用的资源的控制。-H和选项-S指定为给定资源设置硬限制或软限制。硬限制一旦设置,非 root 用户就无法增加;软限制可以增加到硬限制的值。 如果 或 均未-H指定-S,则同时设置软限制和硬限制。

shellksh93在其手册中也有类似的措辞,

如果未指定HS选项,则限制适用于两者。

...并且zshdashshell 在设置限制方面的行为也相同。

相关内容