近期新系统测试时产生了大量core文件,把系统盘塞满了。
检测工具使用file命令,检测到某个进程的core文件数目大于3个,就把多余core文件删除,但是系统上线后,并没有删除多余的core文件。
原因在于 新OS系统中,file命令限制了解析program header数目,默认是128个,所以直接使用file命令看不到core文件对应的应用程序名称。
OS内核版本:
FILE命令版本:
测试file命令获取core文件所属进程名称:
# gcore 1160141
生成core文件信息:
file命令查看所属进程信息,提示"too many program headers"
正确获取core文件所属进程名称方式:
新OS系统中,file命令默认只解析128个ELF program sections。
参考资料:
https://stackoverflow.com/questions/31328955/why-is-the-file-utility-telling-me-there-are-too-many-program-headers