我使用该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提议的那样。