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

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

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

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

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

# ulimit -n 2048

但我仍然看到 1024

# cat /proc/<pid>/limits
..
Max open files            1024                 4096                 files
..

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

答案1

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

prlimit -n10:20 command

还可以提供命令的参数:

prlimit -n10:20 command arg1 arg2 ...

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

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

答案2

如果我们谈论的是守护进程,您可以ulimt -n $your_number在 init 脚本中提供。如果它是一个已经在运行的进程并且您无法重新启动它,请使用prlimit 就像John1024提议的那样

相关内容