Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache没有进行核心转储,即使kill-11进行了一次_Apache_Coredump - Fatal编程技术网

Apache没有进行核心转储,即使kill-11进行了一次

Apache没有进行核心转储,即使kill-11进行了一次,apache,coredump,Apache,Coredump,希望这是件简单的事,但也许不是 我有4个RHEL5web框,它们安装在负载平衡器后面。它们都通过NFS共享提供大部分内容 偶尔(一天两次或更少)我会在内核的系统日志中看到一条关于apache的segfault的注释: /var/log/messages.2:Sep 13 14:09:14 20050lpweb01 kernel: httpd[10006]: segfault at 00007fffae2eede8 rip 00002ab21a4045d4 rsp 00007fffae2eedd0

希望这是件简单的事,但也许不是

我有4个RHEL5web框,它们安装在负载平衡器后面。它们都通过
NFS
共享提供大部分内容

偶尔(一天两次或更少)我会在内核的系统日志中看到一条关于apache的segfault的注释:

/var/log/messages.2:Sep 13 14:09:14 20050lpweb01 kernel: httpd[10006]: segfault at 00007fffae2eede8 rip 00002ab21a4045d4 rsp 00007fffae2eedd0 error 6
有时,还会向apache错误日志发送一条与此相关的消息,但并不总是:

# grep -ic seg /var/log/messages* |egrep -v '0$'
/var/log/messages.2:1
/var/log/messages.3:2
/var/log/messages.4:4
# zgrep -ic seg /var/log/httpd/error_log* |egrep -v '0$'
/var/log/httpd/error_log:1
/var/log/httpd/error_log.10.gz:1
/var/log/httpd/error_log.17.gz:1
/var/log/httpd/error_log.19.gz:1
/var/log/httpd/error_log.23.gz:1
/var/log/httpd/error_log.24.gz:2
/var/log/httpd/error_log.25.gz:1
/var/log/httpd/error_log.28.gz:2
/var/log/httpd/error_log.30.gz:1
/var/log/httpd/error_log.31.gz:1
/var/log/httpd/error_log.35.gz:1
/var/log/httpd/error_log.39.gz:4
/var/log/httpd/error_log.42.gz:1
/var/log/httpd/error_log.44.gz:3
/var/log/httpd/error_log.46.gz:1
我已经在网上按照说明设置了堆芯转储:

echo "ulimit -c unlimited >/dev/null 2>&1" >> /etc/profile
echo "DAEMON_COREFILE_LIMIT='unlimited'" >> /etc/sysconfig/init
echo 1 > /proc/sys/fs/suid_dumpable
echo "core.%p" > /proc/sys/kernel/core_pattern
echo "CoreDumpDirectory /home/coredump" > /etc/httpd/conf.d/core_dumps.conf
mkdir /home/coredump
chown apache: /home/coredump
source /etc/profile
service httpd stop
service httpd start
当我“诱导”一个SEGFULT(kill-11)时,会生成coredump:

/var/log/httpd/error_log:[Sat Sep 15 20:43:32 2012] [notice] child pid 20746 exit signal Segmentation fault (11), possible coredump in /home/coredumps
但当SEGFULT自行发生时,不会进行coredump:

/var/log/httpd/error_log:[Sat Sep 15 12:03:44 2012] [notice] child pid 10652 exit signal Segmentation fault (11)
为什么会发生这种情况?我如何确保每次都会发生内核转储


我们正在运行PHP5.2,但除此之外,一切都是从标准RHELEPELrepos安装的。

可能是核心转储生成到了与
/home/coredump
不同的文件夹中。我建议您进行快速搜索:
find/-name'core.[0-9]*'
以查看是否找到了任何内容。我在解决此问题时做了此操作,但未找到任何内容。我能想到的最好的答案是,要么a)内核不允许将核心转储发送到已装载的NFS共享,要么b)Apache不允许这样做。