作为普通用户,我想增加核心转储文件的最大大小限制。使用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>
就这样吧。我希望它能帮助那些可能遇到类似问题的人。