设置正在运行的进程的最大文件限制

设置正在运行的进程的最大文件限制

我有一个长时间运行的进程,最终将达到最大打开文件数限制。我知道在进程失败后如何更改,但是有没有办法从命令行更改正在运行的进程的打开文件数限制?

答案1

据记载这里,该prlimit命令在 util-linux 2.21 中引入,允许您读取和更改正在运行的进程的限制。

这是可写的 的后续/proc/<pid>/limits,它未集成到主线内核中。此解决方案应该有效。

如果你还没有prlimit(1),你可以在prlimit(2)手册页

答案2

在 CentOS/RHEL 上的较新内核 (2.6.32+) 上,您可以在运行时使用 /proc/<pid>/limits 更改此设置:

cd /proc/7671/
[root@host 7671]# cat limits  | grep nice
Max nice priority         0                    0                    
[root@host 7671]# echo -n "Max nice priority=5:6" > limits
[root@host 7671]# cat limits  | grep nice
Max nice priority         5                    6                    

答案3

在较新版本的 util-linux-ng 中,您可以使用 prlimit 命令,有关更多信息,请阅读此链接https://superuser.com/questions/404239/setting-ulimit-on-a-running-process

答案4

如果经过编程(或者您设法破解了它),该进程可以更改其自身的软限制,但除非它具有 CAP_SYS_RESOURCE 功能,否则它无法提高其硬限制。您可以在 中检查运行时的限制/proc/$pid/limits

相关内容