ulimitを使用したコアファイルサイズ


12

私の質問はおそらく特にUbuntuとは関係ありませんが、私のデスクトップがこのOSを実行しているため、このフォーラムに行きました。

ulimit -c次のコマンドを使用してコアファイルのサイズを変更しようとしています。

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7959
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

制限の変更:

$ ulimit -c unlimited

結果の観察:

$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7959
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

実際、制限は変更されています。しかし、別のターミナルを開いて値を確認しても、コアファイルサイズにゼロ値が表示されます。

質問:

  1. ulimitコマンドを使用して行われた変更は、現在のプロセスにのみ影響しbashますか。つまり、この場合、?
  2. シェルからフォアグラウンドプロセスまたはバックグラウンドプロセスとしてプログラムを起動します。ないulimit変更は、新しいプロセスのために適用されますか?
  3. すべてのユーザープロセスがこの構成の影響を受けるようにするにはどうすればよいですか?

1
質問する前に検索しましたか?serverfault.com/questions/637212/increasing-ulimit-on-centos
ケン2015年

回答:


10

ulimit は組み込みシェルなので、現在のシェルと、そのシェルによって開始されたプロセスにのみ影響します。

$ type ulimit
ulimit is a shell builtin

からman ulimit

The  ulimit  utility  shall  set  or report the file-size writing limit
imposed on files written by the shell and its child processes (files of
any  size  may be read). Only a process with appropriate privileges can
increase the limit.

したがって、はい、子プロセスが影響を受けます。

制限を永続的に、またはすべてのプロセスに設定するには、編集/etc/security/limits.confして再起動します。マンページの例はかなり良いです。あなただけのようなものを追加する必要があります:

username - core unlimited

ありがとう。manpages.ubuntu.com/manpages/bionic/man1/ulimit.1posix.html、ですulimitまた、bashの組み込みコマンドであることに加え、外部コマンド?
Tim、

@Timがリンクしたページを引用:「ulimitは現在のシェル実行環境に影響を与えるため、常にシェルの通常の組み込みとして提供されます。」
muru、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.