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文件大小