ubuntu设置core文件

长久不写代码,突然发现ubuntu当前运行目录下没有生成core文件,记录如下,避免下次重找。

1、首先开启core文件权限

ulimit -c

如果结果为0, 则表示没有开启,需要开启,如下:

 通过ulimit -c unlimited 设置后在ulimit -c 查看,结果为unlimited。

2、设置core文件保存目录,一般设置为程序运行目录

echo  "core-%e-%p-%t" > /proc/sys/kernel/core_pattern

%e表示可执行程序

%p表示进程id

%t表示时间

这三个参数可加可不加

3、如果依然没有产生core文件

应该是默认开启了apport服务,ubuntu目前使用这个服务手机错误信息,但会阻止core文件的产生,这个服务用处不大,可以关闭。

sudo systemctl disable apport.service

4、永久生效

第1、2步的命令只在当前shell下有效,写文件可以使其永久生效。

a)在环境变量中增加开启core文件:vi ~/.bashrc ,新增 ulimit -c unlimited,

使环境变量生效:source ~/.bashrc

b)设置core文件生成目录:vi /etc/sysctl.conf ,新增:kernel.core_pattern=core-%p,

使生效: sysctl -p

5、core文件大小为0

vmware虚拟机中,如果core文件的产生目录在windows共享目录,core文件大小为0。

你可能感兴趣的:(linux,linux,运维,服务器)