怎么获取服务程序的coredump文件?
在命令行下启动的程序,出现段错误等可以在当前目录下获得程序的.core文件。但是用rc.d启动的程序,怎么样才能产生.core文件呢?.core文件会产生在哪儿? 原来是没有man对命令,折腾了近两个小时,man了一下core,基本上懂了,测试下再发结果:sleepy:。 期待分享 ^_^ :emn31: 简单说:
(1)sysctl kern.sugid_coredump=1
(2)sysctl kern.corefile=/home/crash/%N.core
(3)chmod -R 777 /home/crash,注意,此处权限的设置,最起码要你调试的程序有写权限。 回复 5# Hongqiyaodao
详细的也就这些了:mrgreen:
再详细就是man了。 内核可以轻松得到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]