Nginx – Supervisord doesn’t stop nginx process

mac-osxnginxsupervisord

I'm using Supervisor a lot, and in this project I have an nginx process managed by Supervisord. The relevant parts of the configuration is this:

[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

The /home/projects/eceee-web/prod/bin/nginx command will start nginx in the foreground, it does not deamonify itself. Still, stopping it will fail:

supervisorctl stop nginx

Will not give any answer, but the process will continue. Any idea what?

This is on OS X Darwin, with Supervisor 3.0a9 and nginx 0.7.65.

Best Answer

You should be able to use the "daemon off" directive in nginx.conf.

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