如何为特定进程设置“最大打开文件”软硬限制?

Gau*_* KS 5 process file-descriptors limit files ulimit

我用cat /proc/<pid>/limits命令检查了最大打开文件硬限制和软限制,但我想知道这个值将如何设置,可以增加或减少吗?

这个值是在某个配置文件中设置的吗?

我试过ulimit命令,但这对设置特定进程的限制没有帮助。

# ulimit -n 2048
Run Code Online (Sandbox Code Playgroud)

但我仍然看到 1024

# cat /proc/<pid>/limits
..
Max open files            1024                 4096                 files
..
Run Code Online (Sandbox Code Playgroud)

我知道有人问过类似的问题,但我找不到更好的答案。

Joh*_*024 4

如果util-linux安装了该软件包,则可以使用该命令为特定进程设置硬限制和软限制prlimit。要将命令的最大打开文件数的软限制和硬限制分别设置为 10 和 20,command请运行:

prlimit -n10:20 command
Run Code Online (Sandbox Code Playgroud)

还可以提供命令的参数:

prlimit -n10:20 command arg1 arg2 ...
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅man prlimit。

注意:与许多其他 Unix 命令不同,prlimit选项及其参数之间不允许有空格。因此-n10:20有效但-n 10:20无效。