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