①ulimit -a查看操作系统limit信息,显示结果如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31core file size (blocks, -c) 5120
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 240561
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) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
其中第一行显示的就是core文件的配置信息。
当系统中的一些程序在遇到一些错误以及crash时,系统会自动产生core文件记录crash时刻系统信息,包括内存和寄存器信息,用以程序员日后debug时可以使用。这些错误包括段错误、非法指令、总线错误或用户自己生成的退出信息等等。
②设置core文件主要有如下几种方法:1
vim /etc/profile
添加以下内容:1
2
3# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
vim /etc/security/limits.conf
注释掉以下内容1
* soft core 0
以上两种方法都是设置禁止系统所有用户产生core文件。
生产环境中,需要对产生的core文件进行调试,因此一般情况下会对core文件进行一些设置。
设置允许某个用户产生core文件,即不限制大小1
vim ~/.bash_profile
添加下面这行内容:1
ulimit -c unlimited
③下面是对ulimit这个命令的一些具体描述
ulimit用于shell启动进程所占用的资源,属于shell内建命令
语法格式:ulimit
参数介绍:
-H 设置硬件资源限制。
-S 设置软件资源限制。
-a 显示当前所有的资源限制。
-c size:设置core文件的最大值,单位:blocks
-d size:设置数据段的最大值,单位:kbytes
-f size:设置创建文件的最大值,单位:blocks
-l size:设置在内存中锁定进程的最大值,单位:kbytes
-m size:设置可以使用的常驻内存的最大值,单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值,单位:n
-p size:设置管道缓冲区的最大值,单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限,单位:seconds
-v size:设置虚拟内存的最大值,单位:kbytes