国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux下使用coredump時要注意的問題

2024-08-28 00:04:56
字體:
來源:轉載
供稿:網友
    最近琢磨MySQL coredump時學到的一點點東西。在Linux下要保證程序崩潰時生成coredump要注意這些問題:

  一、要保證存放coredump的目錄存在且進程對該目錄有寫權限。存放coredump的目錄即進程的當前目錄,一般就是當初發出命令啟動該進程時所在的目錄。但如果是通過腳本啟動,則腳本可能會修改當前目錄,這時進程真正的當前目錄就會與當初執行腳本所在目錄不同。這時可以查看”/proc/<進程pid>/cwd“符號鏈接的目標來確定進程真正的當前目錄地址。通過系統服務啟動的進程也可通過這一方法查看。

  二、若程序調用了seteuid()/setegid()改變了進程的有效用戶或組,則在默認情況下系統不會為這些進程生成coredump。很多服務程序都會調用seteuid(),如mysql,不論你用什么用戶運行mysqld_safe啟動mysql,mysqld進行的有效用戶始終是msyql用戶。如果你當初是以用戶A運行了某個程序,但在ps里看到的這個程序的用戶卻是B的話,那么這些進程就是調用了seteuid了。為了能夠讓這些進程生成coredump,需要將/proc/sys/fs/suid_dumpable文件的內容改為1(一般默認是0)

  三、這個一般都知道,就是要設置足夠大的core文件大小限制了。程序崩潰時生成的core文件大小即為程序運行時占用的內存大小。但程序崩潰時的行為不可按平常時的行為來估計,比如緩沖區溢出等錯誤可能導致堆棧被破壞,因此經常會出現某個變量的值被修改成亂七八糟的,然后程序用這個大小去申請內存就可能導致程序比平常時多占用很多內存。因此無論程序正常運行時占用的內存多么少,要保證生成core文件還是將大小限制設為unlimited為好。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松阳县| 东阳市| 涡阳县| 平安县| 班玛县| 云龙县| 晋州市| 高阳县| 望都县| 鹤庆县| 凌云县| 苍梧县| 龙南县| 全南县| 姜堰市| 彩票| 阳山县| 邛崃市| 余干县| 无极县| 晴隆县| 武安市| 利津县| 新建县| 明水县| 固安县| 郎溪县| 兴隆县| 石林| 电白县| 滨海县| 台安县| 庆安县| 洛扎县| 花垣县| 罗城| 澎湖县| 鄂托克前旗| 阿拉善左旗| 天全县| 仲巴县|