经过分析发现系统默认的core文件生成路径是/var/logs,但/var/logs目录并非系统自带的,系统初始安装默认自带的是/var/log,最终导致该系统出现core dump后并没能生成core文件,因此如何查询和修改系统默认的core dump文件生产路径呢?
方法如下:一. 查询core dump文件路径:
方法1: # cat /proc/sys/kerne怠珐糙貉孬股茬瘫长凯l/core_pattern。
方法2: # /sbin/sysctl kernel.core_pattern二. 修改core dump文件路径:
方法1:临时修改/proc/sys/kernel/core_pattern文件,但/proc目录本身是动态加载的,每次系统重启都会重新加载,因此这种方法只能作为临时修改。 /proc/sys/kernel/core_pattern 例:echo ‘/var/log/%e.core.%p’ >/proc/sys/kernel/core_pattern
方法2:永久修改:使戚睁辩用sysctl -w name=value命令。 例:高缺/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p为了更详尽的记录core dump当时的系统状态,可通过以下参数来丰富core文件的命早敬名: %% 单个%字符。
如果需要针对当前用户一直生效,那么需要在 ~/.bash_profile 追加:袜嫌
如果需要针对所有用户生效,那么需要在 /etc/profile 追加:
然后再对应执行 source ~/.bash_profile 或者 source /etc/profile
测试:
编译运行,然后键盘敲 Ctrl + \,会发现当前目录生成了core文件。
在 /proc/sys/kernel/core_pattern 可以设置格式化的core文件保存位置和文件名。
比如: core-%e-%p-%t 表示慎举在当前目录生成 "core-命令-pid-时间戳" 为文件名的core文件
比如: /cfg/core-%e-%p-%t 表示在/cfg下生成 "core-命告孝手令-pid-时间戳" 为文件名的core文件
注意: /proc/sys/kernel/core_pattern 不能直接编辑,可以用 echo core-%e-%p-%t >/proc/sys/kernel/core_pattern
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)