Chinaunix首页 | 论坛 | 博客
  • 博客访问: 582340
  • 博文数量: 109
  • 博客积分: 1463
  • 博客等级: 上尉
  • 技术积分: 859
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-22 13:21
个人简介

希望和广大热爱技术的童鞋一起交流,成长。

文章分类

全部博文(109)

文章存档

2017年(1)

2016年(2)

2015年(18)

2014年(1)

2013年(9)

2012年(15)

2011年(63)

分类: LINUX

2015-03-05 15:56:51

转载来源:http://tower.iteye.com/blog/453782

下面的资料是从互联网上整理的来的,参考文献如下:

http://blog.csdn.net/hanchaoman/archive/2009/08/03/4405655.aspx

 

 

1. 可以用ulimit -a 查看一下栈的大小。
在内核2.6.20下, stack size 为8192 kbytes
如果这里没有限制,就栈的大小就只受内存的限制。2G是上限。

2. core 文件
    * 开启或关闭core文件的生成
ulimit -c 可以查看是否打开此选项,若为0则为关闭;
ulimit -c 0可手动关闭
ulimit -c 1000 为设置core文件大小最大为1000k

ulimit -c unlimited 设置core文件大小为不限制大小

 

很多系统在默认的情况下是关闭生成core文件的,这个命令可以加到你的profile中去

永久打开机器上的core:

vim /etc/security/limits.conf
*               soft    core            unlimited
*               hard    core            unlimited


3.设置Core Dump的核心转储文件目录和命名规则


 

在默认的情况下,很多系统的core文件是生成在你运行程序的目录下,或者你在程序中chdir后的那个目录,然后在core文件的后面加了一个 pid。在实际工作中,这样可能会造成很多目录下产生core文件,不便于管理,实际上,在2.6下,core文件的生成位置和文件名的命名都是可以配置 的。

 

/proc/sys/kernel/core_uses_pid可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0
proc/sys/kernel/core_pattern可以设置格式化的core文件保存位置或文件名,比如原来文件内容是core-%e
可以这样修改:
echo "/tmp/core-%e-%p" > core_pattern
将会控制所产生的core文件会存放到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
以下是参数列表:
    %p - insert pid into filename 添加pid
    %u - insert current uid into filename 添加当前uid
    %g - insert current gid into filename 添加当前gid
    %s - insert signal that caused the coredump into the filename 添加导致产生core的信号
    %t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
    %h - insert hostname where the coredump happened into filename 添加主机名
    %e - insert coredumping executable name into filename 添加命令名

当然,你可以用下列方式来完成
sysctl -w kernel.core_pattern=/tmp/core-%e-%p

 

这些操作一旦计算机重启,则会丢失,如果你想持久化这些操作,可以在 /etc/sysctl.conf文件中增加:
kernel.core_pattern=/tmp/core%p

 

加好后,如果你想不重启看看效果的话,则用下面的命令:
sysctl -p /etc/sysctl.conf

阅读(1118) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~