为什么在 bash 中首次设置核心文件大小限制后无法增加?(ulimit:核心文件大小:无法修改限制:不允许操作)

为什么在 bash 中首次设置核心文件大小限制后无法增加?(ulimit:核心文件大小:无法修改限制:不允许操作)

当尝试从因段错误退出的程序获取核心文件时,我发现我需要使用 ulimit 命令设置核心文件大小(该值默认设置为 0)。

这些是默认值(当我第一次打开 bash 终端时)。

**core file size          (blocks, -c) 0**
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31146
max locked memory       (kbytes, -l) 65536
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) 31146
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

首次设置此限制后,我可以随时将其设置为较低的限制,但永远无法将其设置为比现有限制更高的限制。我必须关闭 bash 并再次打开它。这是什么原因?

user@PC:~$ ulimit -c 10

user@PC:~$ ulimit -c
10

user@PC:~$ ulimit -c 11
**bash: ulimit: core file size: cannot modify limit: Operation not permitted**

user@PC:~$ ulimit -c
10

user@PC:~$ ulimit -c
9

答案1

由于您不是以 root 身份运行,因此无法增加核心文件大小限制。

Linux 允许每个人降低限制,但只有 root 才能增加限制。

这是一个小问题:第一个 ulimit 设置值不需要 root 身份,但是由于您不是 root 身份,因此增加该值会失败。

相关内容