【Linux】修改 core 文件大小和路径

news/2025/3/1 9:11:53/

在 Linux 系统中,默认情况下,核心转储文件(core dump)会生成在当前工作目录下。为了将核心转储文件生成在指定路径下,可以通过以下方法进行配置。


1. 设置核心转储文件路径

Linux 系统提供了两种方式来指定核心转储文件的生成路径:

  1. 通过 /proc/sys/kernel/core_pattern 文件:定义核心转储文件的命名规则和存储路径。
  2. 通过 ulimit 命令:设置核心转储文件的大小限制。

2. 方法一:修改 /proc/sys/kernel/core_pattern

/proc/sys/kernel/core_pattern 文件定义了核心转储文件的命名规则和存储路径。可以通过修改该文件来指定生成路径。

(1)查看当前配置
cat /proc/sys/kernel/core_pattern

默认输出可能是:

core

表示核心转储文件会生成在当前工作目录下,文件名为 core

(2)修改配置

编辑 /proc/sys/kernel/core_pattern 文件,指定核心转储文件的路径和命名规则。例如:

echo "/var/coredump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
  • /var/coredump/:指定核心转储文件的存储路径。
  • core-%e-%p-%t:定义核心转储文件的命名规则:
    • %e:可执行文件名。
    • %p:进程 ID。
    • %t:时间戳。
(3)创建目标目录

确保目标目录存在并具有写权限:

sudo mkdir -p /var/coredump
sudo chmod 777 /var/coredump
(4)永久生效

修改 /proc/sys/kernel/core_pattern 是临时生效的,重启后会恢复默认配置。为了永久生效,可以将配置写入 /etc/sysctl.conf 文件:

echo "kernel.core_pattern=/var/coredump/core-%e-%p-%t" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

3. 方法二:设置 ulimit

ulimit 命令用于设置核心转储文件的大小限制。如果未设置或限制过小,核心转储文件可能无法生成。

(1)查看当前限制
ulimit -c
  • 如果输出为 0,表示核心转储文件生成被禁用。
  • 如果输出为 unlimited,表示没有大小限制。
(2)设置核心转储文件大小限制

将核心转储文件大小限制设置为 unlimited

ulimit -c unlimited
(3)永久生效

将以下内容添加到 /etc/security/limits.conf 文件中:

* soft core unlimited
* hard core unlimited

4. 验证配置

(1)触发核心转储

运行一个测试程序并触发核心转储。例如:

#include <stdio.h>
#include <stdlib.h>int main() {int *ptr = NULL;*ptr = 10;  // 触发段错误return 0;
}

编译并运行:

gcc -o test test.c
./test
(2)检查核心转储文件

在指定的路径下检查是否生成了核心转储文件:

ls /var/coredump

输出示例:

core-test-12345-1698765432

5. 总结

  • 修改 /proc/sys/kernel/core_pattern:指定核心转储文件的路径和命名规则。
  • 设置 ulimit:确保核心转储文件的大小限制足够。
  • 永久生效:将配置写入 /etc/sysctl.conf/etc/security/limits.conf

通过以上方法,你可以将核心转储文件生成在指定路径下,便于管理和调试。


http://www.ppmy.cn/news/1575733.html

相关文章

性能测试测试策略制定|知名软件测评机构经验分享

随着互联网产品的普及&#xff0c;产品面对的用户量级也越来越大&#xff0c;能抗住指数级增长的瞬间访问量以及交易量是保障购物体验是否顺畅的至关重要的一环&#xff0c;而我们的性能测试恰恰也是为此而存在的。 性能测试是什么呢&#xff1f;性能测试要怎么测呢&#xff1f…

FPGA之硬件设计笔记-持续更新中

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 系…

Kotlin 协程与Flow

Flow的&#xff1a; https://juejin.cn/post/7126730252633505829 协程的&#xff1a; https://juejin.cn/post/6908271959381901325 什么是协程 协程可以理解成线程中的线程&#xff0c;进程跟线程的关系&#xff0c;差不多就是线程跟协程的关系。 一个进程里可以有多个线…

deepseek自动化代码生成

使用流程 效果第一步&#xff1a;注册生成各种大模型的API第二步&#xff1a;注册成功后生成API第三步&#xff1a;下载vscode在vscode中下载agent&#xff0c;这里推荐使用cline 第四步&#xff1a;安装完成后&#xff0c;设置模型信息第一步选择API provider&#xff1a; Ope…

vue el-table-column 单元表格的 省略号 实现

要对 el-table-column 的某一列中的每个单元格值进行处理&#xff0c;使其在文本内容超出指定宽度时显示省略号&#xff08;…&#xff09;&#xff0c;可以通过以下方法实现&#xff1a; 使用 scoped slots&#xff1a;利用 Element UI 提供的 scoped slots 自定义单元格内容…

具身系列——算法实践和仿真环境使用

Diffusion Policy算法实验&#xff1a; Diffusion Policy算法复现_diffusion policy复现-CSDN博客 从Diffusion Policy了解具身机械臂_如何将diffusion policy部署到自己的机械臂上-CSDN博客 重讲Diffusion Policy(从公式和代码角度): 个人最看好的机器人操控算法_diffusion…

【和鲸社区获奖作品】内容平台数据分析报告

1.项目背景与目标 在社交和内容分享领域&#xff0c;某APP凭借笔记、视频等丰富的内容形式&#xff0c;逐渐吸引了大量用户。作为一个旨在提升用户互动和平台流量的分享平台&#xff0c;推荐算法成为其核心功能&#xff0c;通过精准推送内容&#xff0c;努力实现更高的点击率和…

对泰坦尼克号沉没事件幸存者数据分析和预测

一、分析目的 探究决定泰坦尼克号沉没事件中什么因素决定着船上人的生死&#xff0c;并对实例进行判别和预测。 二、数据介绍 Titanic.csv数据中包含了891个样本&#xff0c;记录了泰坦尼克号遇难时的891个乘客的基本信息&#xff0c;其中包括以下信息&#xff1a; Passenger…