久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > core文件生成位置及命名

core文件生成位置及命名

發布人:天翼云開發者 時間:2025-12-11 來源:工程師 發布文章

本文分享自天翼云開發者社區《core文件生成位置及命名》.作者:李****壯

一、core文件的生成

1.1  /proc/sys/kernel/core_pattern

       系統文件 /proc/sys/kernel/core_pattern 記錄core 文件格式及保存目錄。可以帶絕對目錄,或者相對目錄。如果是絕對目錄,則所有進程的core文件保存在該目錄,如果是不帶目錄則core生成后保存到 該進程的可執行文件的同目錄下,相對目錄則基于可執行文件的目錄。該配置對服務器內的所有進程生效。

       例如 可執行文件為:/usr/local/openresty/nginx/sbin/nginx

       1)/proc/sys/kernel/core_pattern文件內容:core-%e-%p-%t

       則生成的core文件為:/usr/local/openresty/nginx/sbin/core-nginx-226-1695021268

       2)/proc/sys/kernel/core_pattern文件內容:../core-%e-%p-%t

       則生成的core文件為:/usr/local/openresty/nginx/core-nginx-226-1695021268

       3)/proc/sys/kernel/core_pattern文件內容:/usr/local/core-%e-%p-%t

       則生成的core文件為:/usr/local/core-nginx-226-1695021268

1.2 文件的修改

       對 /proc/sys/kernel/core_pattern 內容的修改可通過系統命令及重寫該文件的方式修改,通過vi 或 vim 文本編輯器方式修改文件,則修改不了

       1)系統命令

        sysctl -w kernel.core_pattern=core-%e-%p-%t 

       2)重寫文件

        echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern
 
1.3 命名的特殊字符介紹
        %%:單個%字符
        %p:所dump進程的進程ID
        %u:所dump進程的實際用戶ID
        %g:所dump進程的實際組ID
        %s:導致本次core dump的信號
        %t:core dump的時間(時間戳格式,由1970年1月1日記起的秒數)
        %h:主機名
        %e:程序文件名
 
1.4 其他
     各進程可以通過設置工作目錄的方式調整core文件的生成位置,例如nginx可以通過
       working_directory /usr/local/openresty/nginx/logs;
     將core文件生成位置改為/usr/local/openresty/nginx/logs目錄下。但是core_pattern為相對目錄及絕對目錄的設置仍會生效,只是相對目錄基于的工作目錄發生變化。
 
二、core文件名攜帶pid
2.1 /proc/sys/kernel/core_uses_pid
     系統文件 /proc/sys/kernel/core_uses_pid 決定core文件名是否攜帶pid,如果值為 1, 即使core_pattern中沒有設置%p,最后生成的core dump文件名仍會加上進程ID。值為0或其他 則不會加上進程ID。
    例如:
            /proc/sys/kernel/core_uses_pid:1
            /proc/sys/kernel/core_pattern: core-%e-%t
            生成實際格式為:core-%e-%t.%p
 
2.2 設置方式
       1)系統命令
       sysctl -w kernel.core_uses_pid=1 

       2)重寫文件

        echo "1" > /proc/sys/kernel/core_uses_pid

   
三、core文件生成大小
        通過 系統命令 ulimit 設置。例如
        ulimit -c unlimited core文件生成大小不限制。
        如果 ulimit -c <size>, 大于size的core文件則不會生成
 
        ulimit -a 查看當前資源限制
 
四、測試
        kill -6 <pid> 測試是否產生core文件


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



相關推薦

技術專區

關閉