幫助中心
香港服務(wù)器租用幫助
香港服務(wù)器如何設(shè)置centos 6和centos 7的內(nèi)核轉(zhuǎn)儲
2018-07-11 16:10:54
ModelId=2&Id=469">

1. 內(nèi)核轉(zhuǎn)儲作用

(1) 內(nèi)核轉(zhuǎn)儲的最大好處是能夠保存問題發(fā)生時(shí)的狀態(tài)。

(2) 只要有可執(zhí)行文件和內(nèi)核轉(zhuǎn)儲,就可以知道進(jìn)程當(dāng)時(shí)的狀態(tài)。

(3) 只要獲取內(nèi)核轉(zhuǎn)儲,那么即使沒有復(fù)現(xiàn)環(huán)境,也能調(diào)試。

centos 6 設(shè)置內(nèi)核轉(zhuǎn)儲

統(tǒng)一命令為以下幾條命令,后面是解釋

echo "* soft core unlimited" >> /etc/security/limits.conf

echo "kernel.core_pattern = /tmp/core-%e-%s-%u-%g-%p-%t"? >> /etc/sysctl.conf

echo "fs.suid_dumpable = 2"? >> /etc/sysctl.conf

echo "DAEMON_COREFILE_LIMIT=’unlimited’" >> /etc/sysconfig/init

sysctl -p

編輯/etc/security/limits.conf,注意這是為所有進(jìn)程設(shè)置的,但如果你有一個作為服務(wù)帳戶運(yùn)行的進(jìn)程,請用服務(wù)帳戶替換*。您必須重新啟動此過程以使此更改生效。

編輯/etc/sysctl.conf并添加放置核心文件和任何命名標(biāo)準(zhǔn)的位置。

文件名變量:

%e是文件名

%g是進(jìn)程運(yùn)行的gid?

%p是進(jìn)程的PID?

%s是導(dǎo)致轉(zhuǎn)儲的信號

%t是轉(zhuǎn)儲發(fā)生的時(shí)間

%u是進(jìn)程運(yùn)行的uid

編輯/etc / sysconfig / init并設(shè)置核心文件限制。

centos 7 設(shè)置內(nèi)核轉(zhuǎn)儲

echo -e "\n# enable coredump whith unlimited file-size for all users\n* soft core unlimited" >> /etc/security/limits.conf

echo -e "\nkernel.core_pattern=/tmp/core-%e-%s-%u-%g-%p-%t" >> /etc/sysctl.conf

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

sysctl -p /etc/sysctl.conf

2,測試是否生效

例子的源代碼:

#include

int main(void)

{

int *a = NULL;

*a = 0x1;

return 0;

}

把以上源代碼,寫成一個a.c文件后,編譯a.c文件產(chǎn)生一個a.out的可執(zhí)行文件:

#gcc -g a.c -o a.out

修改a.out文件的權(quán)限后,執(zhí)行它:

#./a.out

就會顯示:

Segmentation fault(core dump)

這表示在/tmp目錄下, 已經(jīng)生成了a.out對應(yīng)的內(nèi)核轉(zhuǎn)儲文件。

注意:后面帶有(core dump), 才說明轉(zhuǎn)儲文件成功生成了。

USA-IDC特推出香港折扣服務(wù)器租用,支持測試,售完即止歡迎點(diǎn)擊下圖了解詳情

新客優(yōu)惠
特價(jià) 酷睿i3系列
性價(jià)比熱銷推薦,年銷量第一
1180/月起
USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費(fèi)產(chǎn)品試用服務(wù)
立即申請