Chinaunix

标题: 怎么获取服务程序的coredump文件? [打印本页]

作者: lsstarboy    时间: 2013-03-18 10:11
标题: 怎么获取服务程序的coredump文件?
在命令行下启动的程序,出现段错误等可以在当前目录下获得程序的.core文件。

但是用rc.d启动的程序,怎么样才能产生.core文件呢?.core文件会产生在哪儿?
作者: lsstarboy    时间: 2013-03-18 11:14
原来是没有man对命令,折腾了近两个小时,man了一下core,基本上懂了,测试下再发结果
作者: ulovko    时间: 2013-03-18 11:41
期待分享 ^_^
作者: 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


    详细的也就这些了

   再详细就是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。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2