Linux mint启用内核转储

1、查看当前是否启动了内核转储:

star@sky:~$ ulimit -c
unlimited

2、如果上面显示为0,即没有开启,那么,直接执行 ulimit -c unlimited 就好了。

3、要想启用整个系统的内核转储功能,在 /etc/profile 的最后面添加下面这行:

ulimit -S -c unlimited > /dev/null 2>&1

4、设置在专用目录中生成内核转储文件,现在网上一般都说是在 /etc/sysctl.conf 里面设置 kernel.core_pattern=path 和 kernel.core_uses_pid=0 这两个参数,然后执行 sudo sysctl -p ,但是你会发现电脑重启之后在你设置的专用目录又失效了,或者说,没生效。虽然我也不知道原因,但我的确实是没生效。但是,换一种角度,既然是设置的变量,想来应该会有配置文件记录的才对,于是在 /etc 下面搜索: sudo grep kernel.core_pattern /etc/ -nr ,果然还是有结果的:

star@sky:~$ sudo grep kernel.core_pattern /etc/ -nr
/etc/init.d/apport:54:    echo "|$AGENT %p %s %c %d %P" > /proc/sys/kernel/core_pattern
/etc/init.d/apport:78:    if [ "`dd if=/proc/sys/kernel/core_pattern count=1 bs=1 2>/dev/null`" != "|" ]; then
/etc/init.d/apport:81:        echo "core" > /proc/sys/kernel/core_pattern

看看第一行结果,人家是在启动的时候直接写的 /proc 文件,压根就没读什么配置文件。所以,很好办喽,直接把 /etc/init.d/apport:54 这一行的内容换成你想要设置的路径就好喽。

科普一下: /proc 文件系统你可以就当做是内存中各个进程的管理结构,具体的讲,它是以内存作为存储载体的一种文件系统,而这个文件系统的文件保存的就是各个进程包括内核的参数。所以,你更改这里面的文件,就相当与是直接修改了进程的参数。

原文地址:https://www.cnblogs.com/fallenmoon/p/9383659.html