25/06/2017 - SUPERVISOR
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.
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.
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;
$ 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>
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;
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