Herramientas de usuario

Herramientas del sitio


wiki2:supervisor

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki2:supervisor [2015/05/07 13:00]
alfred [Adding programs]
wiki2:supervisor [2020/05/09 09:25] (actual)
Línea 26: Línea 26:
  
 ==== Adding programs ==== ==== Adding programs ====
-Add a configuration file with a content similar to:+Add a configuration file .conf in ''/​etc/​supervisor/​conf.d'' ​with a content similar to:
 <​code>​ <​code>​
 [program:​cat] [program:​cat]
Línea 60: Línea 60:
 $ supervisorctl update $ supervisorctl update
 </​code>​ </​code>​
 +===== Eventos =====
 +
 +Los eventos en Supervisor son mensajes de un tipo X que lanza Supervisord. Los posibles actualmente son:
 +http://​supervisord.org/​events.html#​event-types
 +
 +Para ello sólo has de definir un listener (que no es más que otro programa) para supervisor. Se le dice qué programa es el receptor y qué eventos:
 +<​code>​
 +[eventlistener:​mylistener]
 +command=my_custom_listener.py
 +events=PROCESS_STATE,​TICK_60
 +</​code>​
 +
 +El código de un listener puede ser el siguiente ( :!: date cuenta que sigue un protocolo de ''​OK''​ -> ''​READY''​):​
 +<code python>
 +import sys
 +
 +def write_stdout(s):​
 +    sys.stdout.write(s)
 +    sys.stdout.flush()
 +
 +def write_stderr(s):​
 +    sys.stderr.write(s)
 +    sys.stderr.flush()
 +
 +def main():
 +    while 1:
 +        write_stdout('​READY\n'​) # transition from ACKNOWLEDGED to READY
 +        line = sys.stdin.readline() ​ # read header line from stdin
 +        write_stderr(line) # print it out to stderr
 +        headers = dict([ x.split(':'​) for x in line.split() ])
 +        data = sys.stdin.read(int(headers['​len'​])) # read the event payload
 +        write_stderr(data) # print the event payload to stderr
 +        write_stdout('​RESULT 2\nOK'​) # transition from READY to ACKNOWLEDGED
 +
 +if __name__ == '​__main__':​
 +    main()
 +    import sys
 +</​code>​
 +
 +[[ http://​pypi.python.org/​pypi/​superlance|Superlance]] es un grupo de listeners ya programados que pueden ser utilizados.
wiki2/supervisor.1431003629.txt.gz · Última modificación: 2020/05/09 09:25 (editor externo)