如何消除核心转储文件大小的限制

如何消除核心转储文件大小的限制

作为普通用户,我想增加核心转储文件的最大大小限制。使用bash,我可以像这样设置它:

$ ulimit -c 100

第一次设置时效果很好。但是,下次使用此命令时,我只能将此限制设置为不超过 100 的值。一般来说,只有在登录后第一次使用此命令时,我才能将其设置为任意值。接下来的所有时间,可能的值都受到初始设置值的限制。

如何才能使该命令在多次使用时保持不变?

答案1

@Peter Bašista在他自己的问题中回答:

一开始,我以为这是一个错误,所以我才开始问这个问题。但结果发现这只是一个完全正确的行为。事实证明,RTFM 这句话在这里也适用。

正如所man bash显示的,ulimit内置命令有附加参数:-H用于设置所谓的难的限制并-S 设定所谓的柔软的限制。此外,如果没有给出这些选项,则默认行为是ulimit尝试设置 两个都软限制和硬限制同时设置为相同的值。这就是问题所在。

现在有来自bash手册页的一段引文:

一旦设置硬限制,非 root 用户就无法增加;

所以,我们开始吧。正确使用ulimit命令时应始终牢记这一点。最重要的是, 除非您确定自己知道自己在做什么(当时我显然不知道),否则永远不要在没有-H或选项的情况下使用它。-S

我应该做的是这样的:

登录后:ulimit -H -c unlimited

每次我想更改最大核心转储大小限制ulimit -S -c <new size>

就这样吧。我希望它能帮助那些可能遇到类似问题的人。

相关内容