ulimits 是由 shell 继承,还是由用户继承,还是由两者结合继承?

ulimits 是由 shell 继承,还是由用户继承,还是由两者结合继承?

当一个进程产生一个子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以找到适合您特定操作系统的答案。

相关内容