如何删除核心转储文件大小的限制
我想作为普通用户增加核心转储文件的最大大小限制。 使用bash
,我可以像这样设置:
$ ulimit -c 100
这在我第一次设置时效果很好。 但是,下次使用此命令时,我只能将此限制设置为不超过100的值。通常,我只能在登录后第一次使用此命令时将其设置为任意值。 在接下来的所有时间中,可能的值受到初始设定值的限制。
如何在命令的多次使用中使其持久化?
根据@PeterBašista在他自己的问题中的回答:
起初,我认为这是一个错误,这就是我开始这个问题的原因。 但结果certificate这只是一种完全正确的行为。 事实certificate,RTFM也适用于此。
正如
man bash
揭示的那样,ulimit
内置命令还有其他参数:-H
用于设置所谓的硬限制,-S
用于设置所谓的软限制。 此外,如果没有给出这些选项,则默认行为是ulimit
尝试一次将软限制和硬限制设置为相同的值。 这就是问题所在。现在有一个来自
bash
手册页的引用:一旦设置了非root用户,就无法增加硬限制;
那么,我们去吧。 正确使用
ulimit
命令应该始终牢记这一点。 最重要的是,除非你确定知道你在做什么(当时我显然不是这样),否则不应该在没有-H
或-S
选项的情况下使用它。我应该做的是这样的事情:
登录后:
ulimit -H -c unlimited
每次我想更改最大核心转储大小限制
ulimit -S -c
那就是这个。 我希望它可以帮助那些可能会遇到类似问题的人。