Linux环境下如何生成core文件
Linux環(huán)境下進(jìn)程發(fā)生異常而掛掉,通常很難查找原因,但是一般Linux內(nèi)核給我們提供的核心文件,記錄了進(jìn)程在崩潰時(shí)候的信息。但是生成core文件需要設(shè)置開關(guān),具體步驟如下:
1、查看生成core文件的開關(guān)是否開啟,輸入命令# ulimit -a
我們看到,第一行core文件大小為0,沒(méi)有開啟。
2、使用#ulimit -c [kbytes]可以設(shè)置系統(tǒng)允許生成的core文件大小;
ulimit -c 0 不產(chǎn)生core文件
ulimit -c 100 設(shè)置core文件最大為100k
ulimit -c unlimited 不限制core文件大小
執(zhí)行命令#ulimit -c unlimited,然后ulimit -a查看core
這樣進(jìn)程崩潰就可以生成core文件了,這種方法只能在shell中生效,下面說(shuō)一下永久生效的方法:
#vim /etc/profile,然后進(jìn)入編輯模式,在profile文件中加入
ulimit -c unlimited
保存退出,重啟服務(wù)器,改文件就長(zhǎng)久生效,或者#source /etc/profile,不重啟服務(wù)器,使用source使文件馬上生效。
3.指定生成文件的路徑和名字;執(zhí)行# vim /etc/sysctl.conf,進(jìn)入編輯模式,加入下面兩行
kernel.core_pattern=/var/core/core_%e_%p
kernel.core_uses_pid=0
在var下創(chuàng)建core目錄,用# sysctl –p /etc/sysctl.conf,是修改馬上生效。
core_pattern的命名參數(shù)如下:
%c 轉(zhuǎn)儲(chǔ)文件的大小上限
%e 所dump的文件名
%g 所dump的進(jìn)程的實(shí)際組ID
%h 主機(jī)名
%p 所dump的進(jìn)程PID
%s 導(dǎo)致本次coredump的信號(hào)
%t 轉(zhuǎn)儲(chǔ)時(shí)刻(由1970年1月1日起計(jì)的秒數(shù))
%u 所dump進(jìn)程的實(shí)際用戶ID
4、#kill -s SIGSEGV $$ ,執(zhí)行命令,可以看到/var/core下生成了一個(gè)core文件,說(shuō)明已經(jīng)設(shè)置成功。
好了,接下來(lái)進(jìn)程出問(wèn)題就可以用core文件調(diào)試了。
總結(jié)
以上是生活随笔為你收集整理的Linux环境下如何生成core文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WPF感悟(1)
- 下一篇: 性能测试流程 | 怎么做性能测试