久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux不產(chǎn)生core文件怎么解決

168次閱讀
沒有評論

共計 1729 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“l(fā)inux 不產(chǎn)生 core 文件怎么解決”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

linux 不產(chǎn)生 core 文件的解決辦法:1、檢查 Core dump 的目錄是否存在并設(shè)置進程對該目錄有寫權(quán)限;2、檢查服務(wù)程序是否調(diào)用 seteuid();3、設(shè)置足夠大的 Core 文件大小限制;4、修改 profile 等等。

本文操作環(huán)境:linux5.9.8 系統(tǒng)、Dell G3 電腦。

linux 不產(chǎn)生 core 文件怎么辦?為什么沒有產(chǎn)生 core 文件?

一、要保證存放 Core dump 的目錄存在且進程對該目錄有寫權(quán)限。

存放 Core dump 的目錄即進程的當前目錄,一般就是當初發(fā)出命令啟動該進程時所在的目錄。但如果是通過腳本啟動,則腳本可能會修改當前目錄,這時進程真正的當前目錄就會與當初執(zhí)行腳本所在目錄不同。這時可以查看 /proc/ 進程 pid /cwd 符號鏈接的目標來確定進程真正的當前目錄地址。通過系統(tǒng)服務(wù)啟動的進程也可通過這一方法查看。

二、若程序調(diào)用了 seteuid()/setegid()改變了進程的有效用戶或組,則在默認情況下系統(tǒng)不會為這些進程生成 Core dump。

很多服務(wù)程序都會調(diào)用 seteuid(),如 MySQL,不論你用什么用戶運行 mysqld_safe 啟動 MySQL,mysqld 進行的有效用戶始終是 msyql 用戶。如果你當初是以用戶 A 運行了某個程序,但在 ps 里看到的這個程序的用戶卻是 B 的話,那么這些進程就是調(diào)用了 seteuid 了。為了能夠讓這些進程生成 Coredump,需要(echo 1 /proc/sys/kernel/suid_dumpable)。

三、這個一般都知道,就是要設(shè)置足夠大的 Core 文件大小限制了。

程序崩潰時生成的 Core 文件大小即為程序運行時占用的內(nèi)存大小。但程序崩潰時的行為不可按平常時的行為來估計,比如緩沖區(qū)溢出等錯誤可能導(dǎo)致堆棧被破壞,因此經(jīng)常會出現(xiàn)某個變量的值被修改成亂七八糟的,然后程序用這個大小去申請內(nèi)存就可能導(dǎo)致程序比平常時多占用很多內(nèi)存。因此無論程序正常運行時占用的內(nèi)存多么少,要保證生成 Core 文件還是將大小限制設(shè)為 unlimited 為好。

四、在 /etc/profile 中添加:

ulimit -c unlimited   /dev/null 2? 1

五、一般在 CLI 上啟動的程序,如果設(shè)置:

ulimit -c unlimited

就可以在程序以外終止時生成 core dump 文件。但是對于 daemon 方式運行的程序,其與 CLI 啟動的程序的主要區(qū)別是進程的運行環(huán)境,其中就包括

cwd(current working directory)。如果以相對路徑方式定義 core 文件的格式,比如定義 /proc/sys/kernel/core_pattern 為:

core-%e-%p-%t

則一般來說,daemon 文件的 cwd 就是 /,你可以通過 /proc/ your_program_pid /cwd 來查看,一般都是連接到 / 目錄。而如果用戶對這個目錄沒有寫權(quán)限,那么就不會生成 core dump 文件了。

最直接的解決的方法,是修改 /proc/sys/kernel/core_pattern 為絕對路徑:/data/coredump/core-%e-%p-%t

并且保證這樣就基本 OK 了。

修改 /proc/sys/kernel/core_pattern 文件中的 core dump 文件格式為絕對路徑,比如:

/data/coredump/core-%e-%p-%t

什么時候不產(chǎn)生 core 文件?

在下列條件下不產(chǎn)生 core 文件:

(a)進程是設(shè)置 - 用戶 -ID,而且當前用戶并非程序文件的所有者;

(b)進程是設(shè)置 - 組 -ID,而且當前用戶并非該程序文件的組所有者;

(c)用戶沒有寫當前工作目錄的許可權(quán);

(d)文件太大。core 文件的許可權(quán) (假定該文件在此之前并不存在) 通常是用戶讀 / 寫,組讀和其他讀。

“l(fā)inux 不產(chǎn)生 core 文件怎么解決”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計1729字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 惠州市| 绍兴县| 即墨市| 乌苏市| 汕尾市| 九寨沟县| 伊川县| 太保市| 台江县| 邹平县| 大城县| 湄潭县| 武乡县| 泰宁县| 扬中市| 万盛区| 正镶白旗| 余干县| 开阳县| 晴隆县| 襄垣县| 伊通| 航空| 循化| 临汾市| 榆树市| 莲花县| 黄浦区| 许昌县| 高邮市| 石狮市| 积石山| 鹤山市| 鱼台县| 海安县| 潞西市| 福州市| 祥云县| 双鸭山市| 宜宾县| 平阳县|