在哪里可以找到 FCGI 应用程序的 FreeBSD nginx coredump 文件?

在哪里可以找到 FCGI 应用程序的 FreeBSD nginx coredump 文件?

我在 FreeBSD 上的 nginx 上运行 FCGI 生成应用程序。它有错误,我想分析崩溃的 .core 文件。但我不知道它是在哪里生成的。有人知道吗?

答案1

首先,你的 nginx 必须使用 --with-debug 配置选项进行编译。如果你使用的是 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:,尽管您可能希望限制这一点)。除非在 /etc/master.passwd 中明确指定了登录类,否则 nginx 用户将在“默认”登录类下运行

答案2

我自己已经找到了解决这个问题的方法。

我不知道为什么这是必要的,但我必须将二进制文件的所有者从 root 更改为运行我的应用程序的 spawn-fcgi 用户。现在它会生成一个核心文件。

相关内容