CentOS中默认设置了ulimit -c 0也就是默认程序不生成core dump,这样很麻烦,每次启动程序前都要让用户先执行一次ulimit -c ulimited,有时候用户忘记则不生成core,很不利于错误分析,所以研究了下如何让系统默认就生成core.
在网上找了部分资料,看到了
CentOS 5中ulimit值调整并永久生效的方法
http://www.sunchis.com/html/os/linux/2011/0609/338.html
这篇文章,其中说通过编辑/etc/security/limits.conf文件可以实现ulimit的值设定,测试了nofile后的确可行,但是写入了
* soft core unlimited
* hard core unlimited
重新登陆却没有效果 // ps by zc, 我到这里就有效果了
[root@localhost ~]# ulimit -a
core file size (blocks, -c) 0
通过研究,发现/etc/profile文件中有一句
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
二话不说,把第二行用#注释掉后,即
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
保存重新登陆用户,再次查看,一切正常!
[root@localhost ~]# ulimit -a
core file size (blocks, -c) ulimited
-----------------------------------------------------------------
1:设置系统允许生产core文件
在 ~/.bash_profile 中增加
ulimit -c unlimited
使用ulimit -a可以查看系统core文件的大小限制;
使用ulimit -c [kbytes]可以设置系统允许生成的core文件大小;
ulimit -c 0 不产生core文件
ulimit -c 100 设置core文件最大为100k
ulimit -c unlimited 不限制core文件大小