/ proc //限制中的Max进程表示什么?
它是否表示该进程的最大子进程数?
如何在linux中限制运行时特定进程的子进程数?
cat /proc/<pid>/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 29397 29397 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 29397 29397 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
答案 0 :(得分:0)
这个号码正是您在getrlimit
上RLIMIT_NPROC
所做的。这在手册页中进行了描述:
最大进程数(或者更确切地说,在Linux上,线程) 可以为调用进程的真实用户ID创建。 遇到此限制时,fork(2)失败并显示错误EAGAIN。
因此,每次分叉系统都会检查所有进程,然后再将此进程转换为fork
。如果您降低某个进程的限制 - 可能使用ulimit
进行shell或使用setrlimit
- 系统仍会计算所有进程,但会根据新限制检查数字。