配置 core dump 文件路径和格式

在 Linux 系统中,当程序崩溃时,系统可以生成一个 core dump 文件,该文件包含了程序的内存映像,有助于调试和分析崩溃原因。你可以通过配置系统来指定 core dump 文件的生成路径和命名格式。

配置 core dump 文件路径和格式

1. 使用 ulimit 命令

ulimit 命令用于设置 shell 会话中的资源限制。你可以使用它来启用 core dump 文件并指定文件大小限制。
例如,启用 core dump 并设置文件大小为无限制:

ulimit -c unlimited

你可以将这条命令添加到你的 shell 配置文件(如 ~/.bashrc 或 /etc/profile)中,以便在每次登录时自动应用:

echo "ulimit -c unlimited" >> ~/.bashrc
source ~/.bashrc

2. 配置 /proc/sys/kernel/core_pattern

/proc/sys/kernel/core_pattern 文件用于指定 core dump 文件的生成路径和命名格式。你可以通过编辑这个文件来配置 core dump 文件的位置。
例如,将 core dump 文件保存到 /var/core/ 目录,并以 core-PID 的格式命名:

echo "/var/core/core-%e-%p-%t" | sudo tee /proc/sys/kernel/core_pattern

其中:

  • %e 表示可执行文件名
  • %p 表示进程 ID
  • %t 表示时间戳

你可以使用其他格式说明符来定制文件名,具体说明符可以参考 man 5 core。

3. 持久化配置

为了使配置在系统重启后仍然有效,你需要将配置添加到 /etc/sysctl.conf 文件中:

sudo sh -c 'echo "kernel.core_pattern=/var/core/core-%e-%p-%t" >> /etc/sysctl.conf'
sudo sysctl -p

4. 创建 core dump 目录并设置权限

确保 core dump 文件的目标目录存在,并且具有适当的权限:

sudo mkdir -p /var/core
sudo chmod 777 /var/core

验证配置

你可以通过以下命令验证当前的 core dump 文件配置:

ulimit -c
cat /proc/sys/kernel/core_pattern

确保 ulimit -c 输出 unlimited,并且 /proc/sys/kernel/core_pattern 显示你期望的路径和格式。

示例

假设你希望将 core dump 文件保存到 /var/core/ 目录,并以 core-程序名-进程ID-时间戳 的格式命名,完整的配置步骤如下:

  1. 启用 core dump 并设置文件大小为无限制:
echo "ulimit -c unlimited" >> ~/.bashrc
source ~/.bashrc
  1. 配置 core dump 文件路径和格式:
 echo "/var/core/core-%e-%p-%t" | sudo tee /proc/sys/kernel/core_pattern
  1. 持久化配置:
sudo sh -c 'echo "kernel.core_pattern=/var/core/core-%e-%p-%t" >> /etc/sysctl.conf'
sudo sysctl -p
  1. 创建 core dump 目录并设置权限:
sudo mkdir -p /var/core
sudo chmod 777 /var/core

通过这些步骤,你可以成功配置 core dump 文件的生成路径和命名格式,并确保配置在系统重启后仍然有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值