如何让所有的后台程序(daemons)都可以产生core dumps文件?
Core dumps 默认是关闭的。强烈推荐您不要在生产机器上打开此功能。最好是在 开发的机器或者测试的机器上打开此功能。
为所有的后台程序打开core dumps功能,执行下面的步骤:
1. Edit the /etc/profile:
vi /etc/profile
2. 替换第26行:
ulimit -S -c 0 > /dev/null 2>&1
替换成:
ulimit -c unlimited >/dev/null 2>&1
3. 编辑/etc/init.d/functions, 检查第136行,应该如下:
ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1
4. 编辑/etc/sysconfig/init文件,添加下面的一行,确保全局生效:
DAEMON_COREFILE_LIMIT='unlimited'
5. 可以针对特定的daemons进程打开core dumps的功能。编辑文件/etc/sysconfig/$daemon:
DAEMON_COREFILE_LIMIT='unlimited'
6. 为SUID程序打开core dumps功能:
echo 1 > /proc/sys/kernel/suid_dumpable
7. 编辑/etc/sysctl.conf,添加下面的内容:
kernel.suid_dumpable = 1
kernel.core_uses_pid = 1
8. 重新加载sysctl的设置:
sysctl -p