linux core檔案設定

2021-10-19 12:36:15 字數 2282 閱讀 1999

在linux中,一般當程序非正常退出時,會生成乙個core檔案,這個檔案是程序猝死時記憶體的轉儲檔案,也稱為core dump。

檢視linux指令碼解析方式:

echo $0 

1.檢驗core是否開啟

以see/see登入  

csh:  limit;    coredumpsize = 0 , 說明沒有開啟core, 否則開啟了。

bash: ulimit –a ;  關注紅色部分。 如果是0,表示core沒有開啟,否則開啟了。

2.開啟core,設定大小

如果沒有開啟,永久開啟

······以root/huawei使用者登入,vi /etc/security/limits.conf ,注意紅色部分

臨時指定大小,以see/see使用者登入,

csh: limit coredumpsize 4096000 

bash: ulimit -c 4096000  大小低於/etc/security/limits.conf中設定的大小

注意:這些都是臨時的,一旦該活躍視窗關閉後再次開啟,設定的core大小就失效了。

3. core路徑配置

注意:指定的core路徑有寫入許可權

以see/see使用者登入,/sbin/sysctl -a |grep core, 檢視目前core檔案生成的路徑

然後肉眼查一下 kernel.core_pattern 和 kernel.core_uses_pid 兩個配置值是多少。

kernel.core_pattern: core檔案路徑

kernel.core_uses_pid: 生成core檔案,字尾是否帶pid  1:帶; 0 :不帶

臨時修改路徑(需要root許可權)

/sbin/sysctl -w kernel.core_pattern=/core/core.%e.%p

/sbin/sysctl -w kernel.core_uses_pid=0

%p – insert pid into filename  ---   顯示程序號

%u – insert current uid into filename ---  使用者id

%g – insert current gid into filename ---  組id

%s – insert signal that caused the coredump into the filename ---新增導致產生core的訊號

%t – insert unix time that the coredump occurred into filename --- 時間

%e – insert coredumping executable name into filename  --- 名字

永久修改路徑(需要root許可權,機器重新啟動也會生效):

修改/etc/sysctl.conf,新增2行即可:

kernel.core_pattern = /core/core.%e.%p

kernel.core_uses_pid = 0

設定生效

sysctl -p /etc/sysctl.conf

4. 產生core(用於自測試)

以see/see使用者,ksh;kill -11 $$

5. 定位分析core

gdb  container  core檔案

然後:bt

6 .關閉core

臨時關閉:

csh: limit coredumpsize 0 

bash: ulimit -c 0 

注意:這些都是臨時的,一旦該活躍視窗關閉後再次開啟,設定的core大小就失效了。

永久關閉:

以root/huawei使用者登入,vi /etc/security/limits.conf ,注意紅色部分為0

linux core檔案機制

在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...

linux core檔案機制

1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,不會生成core檔案。2 使用ulimit c filesize命令,可以限制core檔案的大小 filesize的單位為kbyte 若ulimit c unlimited...

linux core檔案機制

在程式不尋常退出時,核心會在當前工作 目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能...