我是否必须为 Nginx 配置守护进程工具,或者 Nginx 是否以更智能的方式处理其关闭?

我是否必须为 Nginx 配置守护进程工具,或者 Nginx 是否以更智能的方式处理其关闭?

我将守护进程工具与 gearman 一起使用,
我在想是否应该为 Nginx 配置守护进程工具
,或者它是否会自动处理其关闭(如果出现内存问题等)?

答案1

作为一个十三年前就爱上 daemontools 的人,我也尝试监督所有事情。不过 nginx 有点不稳定,您必须至少daemon off;在配置中使用它来在前台运行它,master_process off;如果您真的不想让它生成任何子进程。只需exec从运行程序中使用它,它就会像您期望的那样运行。

然而,我却反其道而行之。我逐渐接受 nginx 内置了监督功能。您会注意到,当您运行它时,您会得到如下结果:

$ psg nginx
root      1361     1  0 Mar31 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data  1362  1361  0 Mar31 ?        00:18:10 nginx: worker process
www-data  1363  1361  0 Mar31 ?        00:18:44 nginx: worker process
$ pstree -p 1361
nginx(1361)─┬─nginx(1362)
            └─nginx(1363)

主进程本质上是supervise。它非常轻量,仅负责确保工作进程正常运行。我从来没有一次即使是在一些相当繁忙的环境中,它也崩溃了。所以现在我只需init停止/启动它,然后担心我需要监督的服务。

还有其他注意事项。查看官方文档对此有何说明:http://nginx.org/en/docs/faq/daemon_master_process_off.html

相关内容