linux系统如何开启和关闭core dump
本文简单讲解了core dump的开启和关闭方法,也说明了指定core dump输出路径和命令格式的方法。
概述
大多数Linux系统默认开始core dump。
我们一方面咱们想要收集信息以提升稳定性、排除故障;另外一方面,我们又想要限制debug的数据、避免泄漏一些敏感数据。第一个选择适合于研究不稳定的程序的机器。第二个选择适用于存储和处理敏感数据。
如何开启和关闭core dump
开启core dump
- 为了开启core dump,我们需要打开系统的软限制(soft limits)
ulimit -S -c unlimited
-S:soft limit
-c:指定core dump的大小
- 想要永久的打开core dump,可以在 /etc/security/limits.conf 文件中添加下面这一句:
soft core unlimited
另外,我们可以限制core dump文件的大小,或者关闭core dump
ulimit -c 1024 //限制大小为1024
ulimit -c 0 //限制大小为0,即不输出core文件
只使用-c参数的时候,就是查看core文件的大小限制,并且关闭了core dump
关闭core dump
core dump文件会占用磁盘空间而且可能会包含一些敏感数据,因此有的时候需要关闭它。
可以通过更新soft limit来关闭core dump
ulimit -S -c 0
想要永久的关闭core dump,我们可以在 /etc/security/limits.conf 文件中添加下面内容:
soft core 0
hard core 0
指定core dump文件输出的位置和命名规则
我们可以通过以下命令来指定core dump文件生成的位置和文件命名格式:
sudo sysctl -w kernel.core_pattern=/tmp/coredumps/core-%e-%s-%u-%g-%p-%t
这个命令是把core dump文件的生成位置写入到core pattern文件,core pattern文件是生成core dump文件的一个样板;在这个样板文件里面我们可以定义core dump文件的命名规则,比如上面使用了一些%标识符(“%e-%s-%u-%g-%p-%t” )来规定文件命名格式。
%%:一个%字符
%p:dumped进程的PID
%u:dumped进程的真实UID
%g:dumped进程的真实GID
%s:致使dump的信号编号
%t:dump的时间,精确到秒
%h:hostname
%e:可执行文件名
%c:core file大小的限制
想永久地改变core dump文件的路径,我们可以在/etc/sysctl.conf文件中添加下面的代码:
kernel.core_pattern="/coredumps/core-%e-%s-%u-%g-%p-%t"
如果以上内容对你有所帮助,请点个赞吧。
本文记录了core dump的有关操作方法,以后忘记了再回来看看。
好记性不如烂笔头。
更多推荐
所有评论(0)