当一个进程产生一个子shell时,是如何ulimit
继承的?
是按用户、按 shell,还是按组合?
具体来说,这是在 HP Server Automation 作业在某些受管 AIX 设备上失败的背景下发现的,因为软件和硬件之间ulimits
存在交互。简而言之,代理(root
在处理来自 SA 的命令时以 运行并生成子 shell)无法处理某些作业,因为其子 shell 遇到了ulimit
。
增加ulimit
解决了这个问题,但是如何继承以及是否需要提高软限制或硬限制(或两者)的问题ulimit
仍悬而未决。
这个问题的适当答案是什么?它可能是特定于 AIX 的,也可能是跨 Unix/Linux 变体的 - 无论哪个更好。
答案1
不同的 *nix 平台的实施细节有所不同,但 ulimit 最初是按用户设置的,所有用户均有一个默认值,其中涵盖了那些没有特定设置的用户。
在 AIX 的具体情况下,这些设置位于/etc/security/limits。Linux 使用略有不同的名称 /etc/security/limits.conf 来完成相同的工作。为了安全起见,请执行
man ulimit
以找到适合您特定操作系统的答案。