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


11

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

$ ulimit -c 100

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

如何使它在命令的多次使用中持续存在?

Answers:


9

Per @PeterBašista在他自己的问题中的回答:

起初,我认为这是一个错误,这就是为什么我开始这个问题。但是事实证明,这只是一种完全正确的行为。事实证明,RTFM的说法也适用于此。

如所man bash揭示的,ulimit内置命令具有其他参数:-H用于设置所谓的限制和-S 用于设置所谓的限制。此外,如果没有这些选项中给出的默认行为是ulimit试图设置 软且一次的硬限制为相同的值。这就是问题所在。

现在,bash手册页中有一个报价:

设置硬限制后,非root用户就不能增加硬限制;

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

我应该做的是这样的:

登录后: ulimit -H -c unlimited

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

就是这样。我希望它可以帮助可能会遇到类似问题的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.