Bu örnek bize Nginx'in Supervisor ile nasıl kontrol edileceğini gösteriyor. Herhangi bir nedenle Nginx durduğunda, Supervisor tarafından "daemon" yerine "foreground" olarak tekrar çalıştırılır.


Önemli


Supervisor Nginx'i daemon off; modunda çalıştırır. daemon off; modu Nginx'e "foreground" olarak çalışmasını söyler. Klasik sudo service nginx stop/start/restart komutları kullanılmaz durumda olacaktır. Daha fazla bilgi için Stack Overflow cevabını okuyabilirsiniz.


Mevcut nginx durumu


Aşağıda da gördüğümüz gibi Nginx "daemon on" modunda çalışıyor.


$ ps aux | grep nginx
root 17184 0.0 0.1 124968 1420 ? Ss 16:18 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

Supervisor konfigürasyonu


$ sudo nano /etc/supervisor/conf.d/nginx.conf

[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
startretries=5
numprocs=1
startsecs=0
process_name=%(program_name)s_%(process_num)02d
stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log
stdout_logfile_maxbytes=10MB

Supervisor'u konfigürasyon dosyamızı okuması için bilgilendirelim.


$ sudo supervisorctl reread
nginx: available

Aşağıdaki komut ile supervisor'dan Nginx servisimizi çalıştırmasını isteyelim.


$ sudo supervisorctl update
nginx: added process group

Supervisor'un Nginx servisini çalıştırıp çalıştırmadığını kontrol edelim.


$ sudo supervisorctl
nginx:nginx_00 RUNNING pid 18429, uptime 0:01:47
supervisor>

Kontrol


Aşağıda da gördüğümüz gibi Nginx "daemon off" modunda çalışıyor.


$ ps aux | grep nginx
root 18429 0.0 0.9 124968 9932 ? S 17:20 0:00 nginx: master process /usr/sbin/nginx -g daemon off;

Not


Eğer supervisor tarafından kontrol edilen servisleri durdurma veya başlatma işlemlerini yapmak isterseniz, supervisor CLI ortamını aşağıdaki gibi kullanabilirsiniz.


$ sudo supervisorctl
nginx:nginx_00 RUNNING pid 18429, uptime 0:02:17

supervisor> help
default commands (type help ):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version

supervisor> stop nginx:nginx_00
nginx:nginx_00: stopped

supervisor> start nginx:nginx_00
nginx:nginx_00: started