Pet*_*sta 11 settings 12.10 ulimit
作为普通用户,我想增加核心转储文件的最大大小限制。使用bash,我可以这样设置:
$ ulimit -c 100
Run Code Online (Sandbox Code Playgroud)
第一次设置时效果很好。但是,下次使用该命令时,我只能将此限制设置为不超过 100 的值。一般而言,我只能在登录后第一次使用此命令时将其设置为任意值。接下来的所有时间,可能的值都受初始设置值的限制。
如何在命令的多次使用中保持这种持久性?
根据@Peter Bašista在他自己的问题中的回答:
起初,我认为这是一个错误,这就是我开始这个问题的原因。但事实证明,这只是一个完全正确的行为。事实证明,RTFM 的说法也适用于此。
正如所
man bash揭示的,ulimit内置命令具有附加参数:-H用于设置所谓的硬限制和-S用于设置所谓的软限制。此外,如果没有给出这些选项,默认行为是ulimit尝试 同时将软限制和硬限制设置为相同的值。这就是问题所在。现在有来自
bash手册页的引用:硬限制一旦设置,非 root 用户就不能再增加;
所以,我们走了。
ulimit命令的正确用法应该始终牢记这一点。最重要的是,除非您确定知道自己在做什么(当时我显然不知道),否则不应在没有-H或-S选项的情况下使用它 。我应该做的是这样的:
登录后:
ulimit -H -c unlimited每次我想更改最大核心转储大小限制时
ulimit -S -c <new size>所以,就是这样。我希望它可以帮助那些可能遇到类似问题的人。
| 归档时间: |
|
| 查看次数: |
22461 次 |
| 最近记录: |