【使用场景】
在系统存储空间紧张的情况下,可能会选择关闭coredump功能来节省磁盘空间。但当应用程序发生崩溃时需要分析其原因时,需要开启coredump功能。
【操作步骤】
临时生效方法:
使用如下命令可以临时开启coredump,并将core文件大小设置为无限制:
ulimit -c unlimited
上述命令仅对当前shell会话有效,重启后失效。
永久生效方法:
1.修改/etc/security/limits.conf,在文件中添加或修改以下行,以针对所有用户(使用*表示)开启coredump,并将core文件大小设置为无限制:
* soft core unlimited
* hard core unlimited
2.配置coredump文件的保存路径和名称格式
通过配置/proc/sys/kernel/core_pattern文件可以指定coredump文件的保存路径和名称格式。命令如下:
echo "/path/to/corefiles/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
其中,/path/to/corefiles/是您想要保存coredump文件的目录(需要提前创建该目录),%e、%p、%t等是特殊的占位符,分别代表可执行文件名、进程ID和UNIX时间戳等。如果想要让core文件名中包含PID(进程ID),可以执行以下命令来启用此功能:
echo "1" > /proc/sys/kernel/core_uses_pid
这样,当程序崩溃时,系统就会根据配置的路径和名称格式生成coredump文件,方便后续的问题分析和调试。