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

我想作为普通用户增加核心转储文件的最大大小限制。 使用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

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