【发布时间】:2015-02-10 11:40:52
【问题描述】:
ulimit -u是否设置了上限:
- 创建的进程数从调用它的进程降序排列?
- 考虑已经使用相同(有效、文件系统、真实、已保存?)用户 ID 运行的进程数?
- 可跨 POSIX 系统移植?
部分答案似乎可以通过help ulimit、man $(basename $SHELL)、setrlimit(3) 的推断获得,或者通过查看
$ ulimit -u 708 | ulimit -u
709
$
在管道命令中对 shell 的(子)进程分配机制进行了一些假设。 (这是上面示例中的硬性限制。)是否有一个综合资源可供学习或参考,实际上侧重于 Unix/POSIX 资源管理?
详细说明列表项 1.,考虑两个登录 shell,limits -u 分别为 200 和 100。还有fork bomb
bomb() { # increment and output cnt, pipe to new process
cnt=$1; cnt=$((cnt + 1)); echo $cnt; sleep 1;
echo | bomb $cnt;
}
我在 200-processes-shell 中运行 bomb。考虑到另一个 shell 中设置的 100 个限制,我应该期望终止接近 200 个进程还是接近 100 个进程?
这是我看到的:
$ bomb 1
2
3
...
196
197
-bash: fork: retry: No child processes
-bash: fork: retry: Resource temporarily unavailable
【问题讨论】:
标签: shell unix process resources