ulimit 命令用于控制 shell 运行时的资源限制,包括文件大小、进程数等。要调整核心转储文件(core dump)的大小限制,可以使用 ulimit 命令的 -c 选项。
以下是调整核心转储文件大小限制的步骤:
查看当前的核心转储文件大小限制:
ulimit -c
这将显示当前的核心转储文件大小限制(以块为单位)。通常,每个块的大小是 512 字节。
设置核心转储文件大小限制:
你可以使用 ulimit -c unlimited 来设置核心转储文件的大小限制为无限制,或者指定一个具体的大小(以块为单位)。例如,设置为 1024 块(即 512 KB):
ulimit -c 1024
永久设置核心转储文件大小限制:
ulimit 命令的设置在当前 shell 会话结束后会失效。要永久设置核心转储文件大小限制,需要修改系统的配置文件。
对于大多数 Linux 发行版:
编辑 /etc/security/limits.conf 文件,添加以下行:
* soft core unlimited
* hard core unlimited
这将为所有用户设置无限制的核心转储文件大小。
对于某些系统:
编辑 /etc/sysctl.conf 文件,添加以下行:
kernel.core_pattern = /var/crash/core.%e.%p
fs.suid_dumpable = 1
然后运行 sysctl -p 使更改生效。
设置核心转储文件的存储路径和命名格式:
你可以在 /etc/sysctl.conf 文件中设置核心转储文件的存储路径和命名格式。例如:
kernel.core_pattern = /var/crash/core.%e.%p
这将把核心转储文件存储在 /var/crash 目录下,并使用进程名和进程ID作为文件名的一部分。
通过以上步骤,你可以调整核心转储文件的大小限制,并确保系统在崩溃时能够生成足够大的核心转储文件,以便进行故障排除和分析。