我在FreeBSD上运行nginx上的FCGI spawn应用程序。 它是越野车,我想分析崩溃的.core文件。 但是我没有任何线索在哪里产生。 有人知道吗?
首先,你的nginx必须用–with-debugconfiguration选项编译。 如果你使用的是freebsd ports,你会添加类似的东西
CONFIGURE_ARGS+= --with-debug
到nginx的ports目录中的Makefile。
然后,在nginx.conf中
worker_rlimit_core 2048M; working_directory /path/to/cores/;
在nginx.conf中
并在/etc/sysctl.conf中
kern.coredump=1 kern.corefile=/path/to/cores
(或“systctl -w kern-.coredump = 1; sysctl kern.corefile = / path / to / cores”)
还要确保/etc/login.conf具有适当的权限来生成用户nginx运行的内核(通常为:coredumpsize = unlimited :,尽pipe您可能想要限制这个)。 除非在/etc/master.passwd中明确指定,否则nginx用户将在“默认”login类下运行
我想通过自己解决这个问题。
我不知道为什么这是必要的,但我不得不将二进制文件的所有者从根,更改为spawn-fcgi用户运行我的应用程序的用户。 现在它生成一个核心文件。