Supervisor

Instal·lació i configuració

http://supervisord.org/

$ sudo pip install supervisor

Per veure una configuració d'exemple:

$ echo_supervisord_conf

Crearem el fitxer de configuració a partir de la plantilla:

echo_supervisord_conf > /etc/supervisord.conf

Editarem el fitxer /etc/supervisord.conf i deixarem una estructura similar a:

; supervisor config file

[unix_http_server]
file=/var/run//supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run//supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

Crearem tots els directoris i fitxers necessaris:

# mkdir /var/log/supervisor
# touch /var/log/supervisor/supervisord.log
# touch /var/run/supervisord.pid
# mkdir /etc/supervisor
# mkdir /etc/supervisor/conf.d
# touch /var/log/trytond/INSTANCIA_supervisord.log

Crearem el fitxer de la nostra instancia de Tryton /etc/supervisor/conf.d/tryton_INSTANCIA.conf

[program:tryton_INSTANCIA]
command=/home/INSTANCIA/tryton/bin/python /home/INSTANCIA/tryton/bin/trytond -c /etc/trytond/.trytond_INSTANCIA
directory=/home/INSTANCIA/tryton
autostart=true
autorestart=true
stdout_logfile=/var/log/trytond/INSTANCIA_supervisord.log
redirect_stderr=true

Arranc en el reinici servidor

A tasks repo tenim els scripts init per ubuntu i debian supervisord. Aquest scritp serà l'encarregat d'arrencar el dimoni de supervisor en el reinici del servidor. Per reiniciar una instancia tryton, ho farem amb el supervisorctl

sudo cp /home/INSTANCIA/tryton38/tasks/templates/init_scripts/ubuntu/supervisord /etc/init.d/supervisord  # Si el servidor té Ubuntu, o
sudo cp /home/programer/tryton38/tasks/templates/init_scripts/debian/supervisord /etc/init.d/supervisord  # Si el servidor té Debian
sudo chmod a+x /etc/init.d/supervisord
sudo update-rc.d supervisord defaults

Si el volem eliminar del reinici:

update-rc.d -f supervisord remove

Ús

supervisord

Si no s'ha arrancat el supervisord farem:

$ sudo /etc/init.d/supervisord start

Si el volem "reiniciar

$ sudo /etc/init.d/supervisord restart

I mirar si esta supervisord corrent

$ sudo /etc/init.d/supervisord status

I per matar-lo

$ sudo /etc/init.d/supervisord stop

supervisorctl

L'eina diaria és supervisorctl

$ supervisorctl start tryton_INSTANCIA
$ supervisorctl stop tryton_INSTANCIA
$ supervisorctl restart tryton_INSTANCIA
...

Si volem totes les instancies:

supervisorctl start all
supervisorctl stop all

Per veure l'estat:

[root@cd78434 ~]# supervisorctl status
tryton_INSTANCIA                 RUNNING    pid 2976, uptime 0:02:18

No arranca Tryton després reinici

Podem executar manualment:

sudo /etc/init.d/supervisord start

Actualizar fitxers de configuració

Per recarregar nous fitxers de configuració que tinguem a /etc/supervisor/conf.d/

supervisorctl reread
supervisorctl update

Actualizar una base de dades

Per actualizar una base de dades de Tryton ho podem fer sense parar el servidor. Ho farem sense el supervisord, directament el nom de la comanda:

/home/INSTANCIA/tryton/bin/python /home/INSTANCIA/tryton/src/trytond/bin/trytond -c /etc/trytond/.trytond_INSTANCIA -u MODULE -d DBNAME

Logrotate

/etc/logrotate.d/supervisord

/var/log/supervisor/*.log {
       weekly
       rotate 10
       compress
       notifempty
       missingok
}

Develop/ServerTrytonSupervisor (last edited 2018-02-12 23:07:04 by resteve)

Contenidos creados por el equipo de Zikzakmedia. Creative Commons By-NC-SA

PythonZikzakmedia