Supervisord不会停止nginx进程

我正在使用Supervisor,在这个项目中我有一个由Supervisordpipe理的nginx进程。 configuration的相关部分是这样的:

[supervisord] logfile=/home/projects/eceee-web/prod/var/log/supervisord.log logfile_maxbytes=5MB logfile_backups=10 loglevel=info pidfile=/home/projects/eceee-web/prod/var/supervisord.pid ; childlogdir=/home/projects/eceee-web/prod/var/log nodaemon=false ; (start in foreground if true;default false) minfds=1024 ; (min. avail startup file descriptors;default 1024) minprocs=200 ; (min. avail process descriptors;default 200) directory=/home/projects/eceee-web/prod [program:nginx] command = /home/projects/eceee-web/prod/bin/nginx redirect_stderr = true autostart= true autorestart = true directory = /home/projects/eceee-web/prod stdout_logfile = /home/projects/eceee-web/prod/var/log/nginx-stdout.log stderr_logfile = /home/projects/eceee-web/prod/var/log/nginx-stderr.log 

/home/projects/eceee-web/prod/bin/nginx命令将在前台启动nginx,但不会自行脱离身份。 但是,停止它将失败:

 supervisorctl stop nginx 

将不会给出任何答案,但过程将继续。 任何想法是什么?

这是在OS X达尔文,与监督3.0a9和nginx 0.7.65。

你应该可以在nginx.conf中使用“daemon off”指令。

http://wiki.nginx.org/CoreModule#daemon

好的,问题是这样的:

我需要启动LD_LIBRARY_PATH设置nginx,以便pcre,libxslt和libxml在path中(这是所有自定义生成与一个易于环境副本构build)。

因此,我有一个sh脚本设置LD_LIBRARY_PATH,然后启动nginx,所以我不必明确地设置它,如果我想启动nginx。

当然,我让nginx启动这个脚本。

但是,当它终止父进程时,nginx不会死!

看起来nginx自己脱离了启动它的shell,即使没有在守护进程模式下运行。

解决scheme:使用正确的环境设置直接调用nginx二进制文件:

 [program:nginx] command = /Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging/parts/nginx/sbin/nginx environment = LD_LIBRARY_PATH="/Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging/parts/lxml/libxml2/lib:/Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging/parts/lxml/libxslt/lib:/Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging/parts/pcre/lib" redirect_stderr = true autostart= true autorestart = true directory = /Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging stdout_logfile = /Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging/var/log/nginx-stdout.log stderr_logfile = /Volumes/Macintosh-HD2/ServiceData/Web/eceee.org/staging/var/log/nginx-stderr.log