lsstarboy 发表于 2013-03-18 10:11

怎么获取服务程序的coredump文件?

在命令行下启动的程序,出现段错误等可以在当前目录下获得程序的.core文件。

但是用rc.d启动的程序,怎么样才能产生.core文件呢?.core文件会产生在哪儿?

lsstarboy 发表于 2013-03-18 11:14

原来是没有man对命令,折腾了近两个小时,man了一下core,基本上懂了,测试下再发结果:sleepy:。

ulovko 发表于 2013-03-18 11:41

期待分享 ^_^ :emn31:

lsstarboy 发表于 2013-03-18 14:30

简单说:
(1)sysctl kern.sugid_coredump=1
(2)sysctl kern.corefile=/home/crash/%N.core
(3)chmod -R 777 /home/crash,注意,此处权限的设置,最起码要你调试的程序有写权限。

Hongqiyaodao 发表于 2013-03-18 17:01

lsstarboy 发表于 2013-03-18 17:39

回复 5# Hongqiyaodao


    详细的也就这些了:mrgreen:

   再详细就是man了。

Hongqiyaodao 发表于 2013-03-19 08:49

lsstarboy 发表于 2013-03-20 10:08

内核可以轻松得到core文件。
命令行可以在运行目录下得到core文件。
但是服务程序,比如ngninx,由于运行的时候用了chroot,启动目录不定,所以得不到core文件。

man core,可以得到一定的提示:

(1)sysctl kern.sugid_coredump=1
这个变量启用su的程序来保存core文件;

(2)sysctl kern.corefile=/home/crash/%N.core
为core文件指定保存位置,注意要用limit命令查看可以core的大小。

(3)chmod -R 777 /home/crash,注意,此处权限的设置,最起码要你调试的程序有写权限。
保存的目录权限,如果需要保存core的程序属主不一定,就是777吧,当然最好不要用777。
页: [1]
查看完整版本: 怎么获取服务程序的coredump文件?