2011-04-08 42 views
0

nscd服务在没有核心转储文件的情况下崩溃。如何让nscd生成核心转储文件?

ulimit -c是无限的。

有人说这是因为当在/etc/nscd.conf中设置“服务器用户”时,nscd使用“setuid”。

然后我在/etc/nscd.conf的“服务器 - 用户”行的开头添加了一个“#”来删除它,然后重新启动服务。

现在它以root身份运行,可以通过“ps -ef | grep nscd”进行检查。

但是,下面的命令仍然不能让NSCD生成一个核心转储文件: 杀-ABRT NSCD-PID 或杀死-s SIGSEGV NSCD-PID

谁能告诉我,为什么和怎么样?提前致谢!

回答

1

自己解决了。这是因为在/etc/init.d/nscd脚本中使用“daemon nscd ...”调用nscd,但是/etc/init.d/functions中的守护进程函数将核心转储文件大小修改为0,所以即使在“/etc/init.d/nscd”开头发出“ulimit -c unlimited”无法启动。

+0

正确地做到这一点的方法是定义一个变量:export DAEMON_COREFILE_LIMIT = unlimited作为守护进程函数执行ulimit -S -c $ {DAEMON_COREFILE_LIMIT:-0}“ – Mathieu 2016-07-07 14:11:35