linux系统如何吐core

大耗子 2020年10月16日 37次浏览

生成core文件

临时生效(重启后不生效)

ulimit -c 0 不产生core文件
ulimit -c 100 设置core文件最大为100k
ulimit -c unlimited 不限制core文件大小

永久生效方法

vi /etc/profile 
#在profile中添加:


ulimit -c 1073741824
#或者
ulimit -c unlimited

使用source /etc/profile立刻生效

指定core文件生成路径

/etc/sysctl.conf文件中,对sysctl变量kernel.core_pattern的设置。

vim /etc/sysctl.conf 
#然后,在sysctl.conf文件中添加下面两句话:

kernel.core_pattern = /var/core/core_%e_%p
kernel.core_uses_pid = 0

输入sysctl –p /etc/sysctl.conf立刻生效

  • 注:如果/proc/sys/kernel/core_uses_pid 这个文件的内容被配置成1,即使core_pattern中没有设置%p,最后生成的core dump文件名仍会加上进程ID。

格式化符号的作用

  • %c 转储文件的大小上限
  • %e 所dump的文件名
  • %g 所dump的进程的实际组ID
  • %h 主机名
  • %p 所dump的进程PID
  • %s 导致本次coredump的信号
  • %t 转储时刻(由1970年1月1日起计的秒数)
  • %u 所dump进程的实际用户ID