web-dev-qa-db-ja.com

コアダンプファイルサイズの制限を解除する方法

通常のユーザーとして、コアダンプファイルの最大サイズ制限を増やしたいと思います。 bashを使用して、次のように設定できます。

$ ulimit -c 100

最初に設定したときにうまく機能します。ただし、次回このコマンドを使用するときは、この制限を100を超えない値にしか設定できません。一般に、ログインしてからこのコマンドを初めて使用するときのみ、任意の値に設定できます。次回以降、可能な値は、最初に設定された値によって上から制限されます。

コマンドの複数の使用にわたってこれを永続化するにはどうすればよいですか?

11
Peter Bašista

@ PeterBašista の彼自身の質問に対する答え:

最初は、これはエラーだと思ったので、この質問を始めました。しかし、それは単に完全に正しい動作であることが判明しました。 RTFMのことわざがここにも当てはまることがわかります。

man bashが明らかにするように、組み込みコマンドulimitには追加パラメーターがあります。-Hいわゆるhard制限と、いわゆるsoft制限を設定するための-S。さらに、これらのオプションのいずれも指定されていない場合、デフォルトの動作は、ulimitがソフト制限とハード制限を設定bothしようとします一度に同じ値。そしてそれが問題でした。

bash manページから引用があります:

非rootユーザーが設定すると、ハード制限を増やすことはできません。

それで、そこに行きます。 ulimitコマンドの正しい使用法では、常にこれを念頭に置く必要があります。最も重要なことは、あなたが何をしているのかを確実に理解している場合を除き、-Hまたは-Sオプションなしで決して使用すべきではないことです(当時は明らかにそうではありませんでした)。

私がすべきだったことは、このようなものです:

ログイン後:ulimit -H -c unlimited

コアダンプの最大サイズ制限を変更するたびにulimit -S -c <new size>

だから、それはそれについてです。同様の問題に苦しんでいる人の助けになることを願っています。

9
Kevin Bowen