InglésFrancésEspañol

icono de página de OnWorks

supervisor - Online en la nube

Ejecute supervisor en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el supervisor de comandos que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


supervisor - Documentación del supervisor

Supervisor es un sistema cliente / servidor que permite a sus usuarios monitorear y controlar un número
de procesos en sistemas operativos similares a UNIX.

Comparte algunos de los mismos objetivos de programas como launchd, daemontools y runit. diferente a
algunos de estos programas, no debe ejecutarse como sustituto de init como "ID de proceso
1 ". En su lugar, está destinado a controlar los procesos relacionados con un proyecto o un
cliente, y está destinado a iniciarse como cualquier otro programa en el momento del arranque.

NARRATIVA DOCUMENTACIÓN


Introducción
Resumen
Supervisor es un sistema cliente / servidor que permite a sus usuarios controlar una serie de
procesos en sistemas operativos similares a UNIX. Se inspiró en lo siguiente:

Conveniencia
A menudo es inconveniente tener que escribir rc.d scripts para cada proceso
ejemplo. rc.d Los scripts son una gran forma de proceso de mínimo común denominador
inicialización / inicio automático / administración, pero pueden ser difíciles de escribir y mantener.
Esta terapia, además rc.d Los scripts no pueden reiniciar automáticamente un proceso bloqueado y muchos
los programas no se reinician correctamente en caso de un bloqueo. El supervisor inicia los procesos
como sus subprocesos, y se puede configurar para reiniciarlos automáticamente en caso de bloqueo.
También se puede configurar automáticamente para iniciar procesos en su propia invocación.

Exactitud
A menudo es difícil obtener un estado de activación / desactivación preciso en los procesos en UNIX. Pidfiles
a menudo mienten. El supervisor inicia los procesos como subprocesos, por lo que siempre conoce la verdadera
estado activo / inactivo de sus hijos y se puede consultar convenientemente para estos datos.

Delegación
Los usuarios que necesitan controlar el estado del proceso a menudo solo necesitan hacerlo. Ellos no quieren o
necesitan acceso completo a la máquina en la que se ejecutan los procesos.
Los procesos que escuchan en puertos TCP "bajos" a menudo deben iniciarse y reiniciarse como
usuario root (un error de UNIX). Suele ocurrir que está perfectamente bien permitir
personas "normales" para detener o reiniciar un proceso de este tipo, pero proporcionándoles acceso de shell
es a menudo impráctico, y proporcionarles acceso root o acceso sudo es a menudo
imposible. También es (con razón) difícil explicarles por qué existe este problema.
Si supervisord se inicia como root, es posible permitir que los usuarios "normales" controlen
tales procesos sin necesidad de explicarles las complejidades del problema.
Supervisorctl permite una forma muy limitada de acceso a la máquina, esencialmente permitiendo
usuarios para ver el estado del proceso y controlar los subprocesos controlados por el supervisor emitiendo
comandos "detener", "iniciar" y "reiniciar" desde un shell simple o una interfaz de usuario web.

Grupos de procesos
Los procesos a menudo deben iniciarse y detenerse en grupos, a veces incluso en una "prioridad
orden ". A menudo es difícil explicar a las personas cómo hacer esto. El supervisor permite
le permite asignar prioridades a los procesos, y permite al usuario emitir comandos a través del
supervisorctl cliente como "iniciar todo" y "reiniciar todo", que los inicia en el
orden de prioridad preasignado. Además, los procesos se pueden agrupar en "proceso
grupos "y un conjunto de procesos relacionados lógicamente se pueden detener e iniciar como una unidad.

Caracteristicas
Fácil
Supervisor se configura a través de un simple archivo de configuración estilo INI que es fácil de aprender.
Proporciona muchas opciones por proceso que le facilitan la vida, como el reinicio fallido
procesos y rotación automática de registros.

Centralizado
Supervisor le proporciona un lugar para iniciar, detener y monitorear sus procesos.
Los procesos se pueden controlar individualmente o en grupos. Puede configurar Supervisor para
proporcionar una línea de comandos local o remota y una interfaz web.

Eficiente
El supervisor inicia sus subprocesos a través de fork / exec y los subprocesos no se demonizan. los
El sistema operativo señala al Supervisor inmediatamente cuando un proceso termina, a diferencia de algunos
las soluciones que se basan en archivos PID problemáticos y sondeos periódicos para reiniciar fallaron
de los empleados.

extensible
Supervisor tiene un protocolo de notificación de eventos simple que los programas escritos en cualquier
el lenguaje puede usar para monitorearlo, y una interfaz XML-RPC para el control. Tambien esta construido
con puntos de extensión que los desarrolladores de Python pueden aprovechar.

Compatible
Supervisor trabaja en casi todo excepto en Windows. Está probado y
compatible con Linux, Mac OS X, Solaris y FreeBSD. Está escrito íntegramente en Python,
por lo que la instalación no requiere un compilador de C.

Experiencia
Si bien Supervisor se desarrolla de manera muy activa en la actualidad, no es un software nuevo. Supervisor
ha existido durante años y ya está en uso en muchos servidores.

Supervisor Componentes de la bolsa de equipaje
supervisor
La parte del servidor del supervisor se llama supervisor. Es responsable de arrancar
programas secundarios en su propia invocación, respondiendo a los comandos de los clientes, reiniciando
subprocesos bloqueados o salidos, registrando su subproceso stdout y stderr salida, y
generar y manejar "eventos" correspondientes a puntos en la vida de los subprocesos.

El proceso del servidor utiliza un archivo de configuración. Normalmente se encuentra en
/etc/supervisord.conf. Este archivo de configuración es un archivo de configuración de estilo "Windows-INI".
Es importante mantener este archivo seguro a través de los permisos adecuados del sistema de archivos porque
puede contener nombres de usuario y contraseñas sin cifrar.

supervisorctl
La pieza de cliente de línea de comandos del supervisor se denomina supervisorctl. Proporciona un
interfaz tipo shell para las funciones proporcionadas por supervisor. De supervisorctl,
el usuario puede conectarse a diferentes supervisor procesos, obtener el estado de los subprocesos
controlados por, detener e iniciar subprocesos de y obtener listas de procesos en ejecución de un
supervisor.

El cliente de línea de comandos habla con el servidor a través de un socket de dominio UNIX o una conexión de Internet.
(TCP) zócalo. El servidor puede afirmar que el usuario de un cliente debe presentar
credenciales de autenticación antes de que le permita ejecutar comandos. El cliente
El proceso generalmente usa el mismo archivo de configuración que el servidor, pero cualquier configuración
archivo con un [supervisorctl] la sección en ella funcionará.

servidor web
Una interfaz de usuario web (escasa) con una funcionalidad comparable a supervisorctl puede ser
se accede a través de un navegador si comienza supervisor contra una toma de Internet. Visita el
URL del servidor (p. ej. http://localhost: 9001 /) para ver y controlar el estado del proceso a través del
interfaz web después de activar el archivo de configuración [inet_http_servidor] .

Interfaz XML-RPC
El mismo servidor HTTP que sirve a la interfaz de usuario web ofrece una interfaz XML-RPC que se puede
se utiliza para interrogar y controlar al supervisor y los programas que ejecuta. Consulte xml_rpc.

Plataforma Requisitos
Supervisor ha sido probado y se sabe que se ejecuta en Linux (Ubuntu 9.10), Mac OS X
(10.4 / 10.5 / 10.6), Solaris (10 para Intel) y FreeBSD 6.1. Probablemente funcionará bien en
la mayoría de los sistemas UNIX.

El supervisor no ejecutar en absoluto en cualquier versión de Windows.

Se sabe que Supervisor funciona con Python 2.4 o posterior, pero no funcionará en ninguna versión
de Python 3.

Correr Supervisor
Esta sección hace referencia a un BINDIR al explicar cómo ejecutar el supervisor y
supervisorctl comandos. Este es el directorio "bindir" que tiene tu instalación de Python
sido configurado con. Por ejemplo, para una instalación de Python instalada a través de
. / Configure --prefijo = / usr / local / py; hacer; make instalar, BINDIR sería / usr / local / py / bin.
Los intérpretes de Python en diferentes plataformas usan un BINDIR. Mira la salida de
configuración.py instalar si no puede averiguar dónde está el suyo.

Adición a Programa
Antes supervisor hará cualquier cosa útil para usted, deberá agregar al menos una
programa sección a su configuración. los programa sección definirá un programa que es
ejecutar y administrar cuando invoca el supervisor mando. Para agregar un programa, necesitará
editar el supervisord.conf archivo.

Uno de los programas más sencillos de ejecutar es UNIX. gato programa. A programa .
eso correrá gato cuando supervisor el proceso se inicia se muestra a continuación.

[programa: foo]
comando =/ papelera / gato

Esta estrofa se puede cortar y pegar en el supervisord.conf expediente. Este es el mas simple
posible configuración del programa, porque solo nombra un comando. Configuración del programa
Las secciones tienen muchas otras opciones de configuración que no se muestran aquí. Ver
programx_section para obtener más información.

Correr supervisor
Para iniciar supervisor, correr $ BINDIR / supervisor. El proceso resultante se demonizará
sí mismo y separarse de la terminal. Mantiene un registro de operaciones en $ CWD / supervisor.log by
predeterminada.

Puede iniciar el supervisor ejecutable en primer plano pasando el -n bandera en su
línea de comando. Esto es útil para depurar problemas de inicio.

ADVERTENCIA:
Cuándo supervisor se inicia, buscará su archivo de configuración por defecto
Ubicaciones de alta calidad que incluyen de la forma más corriente trabajando directorio. Si eres consciente de la seguridad,
probablemente querrá especificar un argumento "-c" después de la supervisor comando especificando
una ruta absoluta a un archivo de configuración para asegurarse de que alguien no lo engañe
ejecutando supervisor desde dentro de un directorio que contiene un deshonesto supervisord.conf archivo.
Se emite una advertencia cuando el supervisor se inicia como root sin este -c argumento.

Para cambiar el conjunto de programas controlados por supervisor, edite el supervisord.conf presentar
y matar -HUP o reiniciar el supervisor proceso. Este archivo tiene varios ejemplos
definiciones de programa.

El supervisor El comando acepta varias opciones de la línea de comandos. Cada uno de estos comandos
Las opciones de línea anulan cualquier valor equivalente en el archivo de configuración.

supervisor Línea de comando De Seguros
-c ARCHIVO, --configuration =ARCHIVO
El camino a un supervisor archivo de configuración.

-n, --nodaemon
Ejecutar supervisor en primer plano.

-h, --ayuda
Mostrar supervisor comando de ayuda.

-u USUARIO, --user =USUARIO
Nombre de usuario de UNIX o identificación de usuario numérica. Si supervisor se inicia como usuario root,
setuid a este usuario lo antes posible durante el inicio.

-m OCTAL, --umask =OCTAL
Número octal (por ejemplo, 022) que representa la umask que debe utilizar supervisor
después de que comience.

-d TRAYECTORIA, --directory =TRAYECTORIA
Cuando supervisord se ejecuta como un demonio, cd a este directorio antes de demonizar.

-l ARCHIVO, --logfile =ARCHIVO
Ruta del nombre de archivo para usar como registro de actividad del supervisor.

-y BYTES, --logfile_maxbytes =BYTES
Tamaño máximo del archivo de registro de actividad del supervisor antes de que se produzca una rotación. El valor
es un sufijo multiplicado, por ejemplo, "1" es un byte, "1 MB" es 1 megabyte, "1 GB" es 1
gigabyte.

-y NUM, --logfile_backups =NUM
Número de copias de seguridad del registro de actividad del supervisor para mantener. Cada
el archivo de registro será de tamaño archivo de registro_maxbytes.

-e NIVEL, --loglevel =NIVEL
El nivel de registro en el que el supervisor debe escribir en el registro de actividad. Válido
los niveles son rastrear, depurar, info, advertir, errory crítico.

-j ARCHIVO, --pidfile =ARCHIVO
El nombre de archivo en el que supervisor debe escribir su archivo pid.

-i CADENA, --identificador =CADENA
Identificador de cadena arbitrario expuesto por varias IU de cliente para esta instancia de
supervisor.

-q TRAYECTORIA, --childlogdir =TRAYECTORIA
Una ruta a un directorio (ya debe existir) donde el supervisor escribirá su AUTO
-modo registros de procesos secundarios.

-k, --sin limpieza
Prevenir supervisor de realizar la limpieza (eliminación de viejos AUTO procesar archivos de registro)
Al inicio.

-a NUM, --minfds =NUM
El número mínimo de descriptores de archivos que deben estar disponibles para el supervisor.
proceso antes de que se inicie correctamente.

-t, --strip_ansi
Elimine las secuencias de escape ANSI de todos los procesos de registro secundarios.

-v, --versión
Imprima el número de versión del supervisor en la salida estándar y salga.

--profile_options =Anuncia
Lista de opciones separadas por comas para la creación de perfiles. Causas supervisor correr bajo un
generador de perfiles y resultados de salida basados ​​en las opciones, que es una lista separada por comas
de los siguientes: acumulativo, llamadas, personas que llaman. P.ej acumulativo, llamadores.

--minprocs =NUM
El número mínimo de ranuras de proceso del sistema operativo que deben estar disponibles para el supervisor
proceso antes de que se inicie correctamente.

supervisorctl Línea de comando De Seguros
-c, --configuración
Ruta del archivo de configuración (predeterminado /etc/supervisord.conf)

-h, --ayuda
Imprimir mensaje de uso y salir

-i, --interactivo
Inicie un shell interactivo después de ejecutar comandos

-s,--URL del servidor Enlance
URL en la que está escuchando el servidor supervisor (predeterminado "http://localhost: 9001").

-u, --nombre de usuario
Nombre de usuario que se utilizará para la autenticación con el servidor

-p, --contraseña
Contraseña que se utilizará para la autenticación con el servidor

-r, --archivo-historia
Mantenga un historial de readline (si readline está disponible)

DE ACTUAR! [argumentos]

Las acciones son comandos como "cola" o "parada". Si se especifica -i o no se especifica ninguna acción
en la línea de comandos, se inicia un "shell" que interpreta las acciones escritas de forma interactiva. Usar
la acción "ayuda" para conocer las acciones disponibles.

Correr supervisorctl
Para iniciar supervisorctl, correr $ BINDIR / supervisorctl. Se presentará un caparazón que
le permiten controlar los procesos que gestiona actualmente supervisor. Escribe "ayuda"
en el indicador para obtener información sobre los comandos admitidos.

El supervisorctl ejecutable se puede invocar con comandos "una vez" cuando se invoca con
argumentos de una línea de comando. Un ejemplo: supervisorctl detener all. Si los argumentos son
presente en la línea de comandos, evitará que se invoque el shell interactivo.
En su lugar, el comando se ejecutará y supervisorctl saldrá

If supervisorctl se invoca en modo interactivo contra un supervisor eso requiere
autenticación, se le solicitarán las credenciales de autenticación.

Señales
El supervisor El programa puede recibir señales que hacen que realice ciertas acciones.
mientras está funcionando.

Puedes enviar cualquiera de estas señales al single supervisor identificacion de proceso. Este ID de proceso
se puede encontrar en el archivo representado por el archivo pid parámetro en el [supervisor] .
del archivo de configuración (por defecto es $ CWD / supervisord.pid).

Signal Manejadores
SIGNO
supervisor y todos sus subprocesos se cerrarán. Esto puede tomar varios segundos.

SIGINT
supervisor y todos sus subprocesos se cerrarán. Esto puede tomar varios segundos.

SIGQUITAR
supervisor y todos sus subprocesos se cerrarán. Esto puede tomar varios segundos.

SUSCRÍBETE
supervisor detendrá todos los procesos, volverá a cargar la configuración desde la primera configuración
archivo que encuentre y reinicie todos los procesos.

SIGUSR2
supervisor cerrará y volverá a abrir el registro de actividad principal y todos los archivos de registro secundarios.

Runtime Security
Los desarrolladores han hecho todo lo posible para asegurar que el uso de un supervisor proceso que se ejecuta como
root no puede dar lugar a una escalada de privilegios no deseada. Pero advertencia emptor. El supervisor es
no tan paranoico como algo como las herramientas demoníacas de DJ Bernstein, ya que supervisor
permite especificaciones de ruta arbitrarias en su archivo de configuración a las que se pueden
escrito. Permitir selecciones de ruta arbitrarias puede crear vulnerabilidades desde el enlace simbólico
ataques. Tenga cuidado al especificar rutas en su configuración. Asegúrese de que el
supervisor El archivo de configuración no puede ser leído ni escrito por usuarios sin privilegios y
que todos los archivos instalados por el paquete supervisor tienen una protección de permiso de archivo "sana"
ajustes. Además, asegúrese de que su PITONPATO está cuerdo y que todos los estándares de Python
Los archivos de la biblioteca tienen protecciones de permisos de archivo adecuadas.

Correr supervisor automáticamente on inicio
Si está utilizando una versión empaquetada de distribución de Supervisor, ya debería estar
integrado en la infraestructura de gestión de servicios de su distribución.

Hay scripts aportados por el usuario para varios sistemas operativos en:
https://github.com/Supervisor/initscripts

Hay algunas respuestas en Serverfault en caso de que te quedes atascado: Cómo a automáticamente comienzo
supervisor on Linux (Ubuntu)

Configuration Archive
El archivo de configuración del supervisor se denomina convencionalmente supervisord.conf. Es utilizado por
ambas supervisor y supervisorctl. Si alguna de las aplicaciones se inicia sin el -c
opción (la opción que se utiliza para decirle a la aplicación el nombre del archivo de configuración
explícitamente), la aplicación buscará un archivo llamado supervisord.conf en la pestaña
siguientes ubicaciones, en el orden especificado. Utilizará el primer archivo que encuentre.

1. $ CWD / supervisord.conf

2. $ CWD / etc / supervisord.conf

3. /etc/supervisord.conf

4. ../etc/supervisord.conf (Relativo al ejecutable)

5. ../supervisord.conf (Relativo al ejecutable)

NOTA:
Algunas distribuciones han empaquetado Supervisor con sus propias personalizaciones. Estas
Las versiones modificadas de Supervisor pueden cargar el archivo de configuración desde ubicaciones
que los descritos aquí. En particular, se han encontrado paquetes de Ubuntu que usan
/etc/supervisor/supervisord.conf.

Archive Formato
supervisord.conf es un archivo de estilo Windows-INI (Python ConfigParser). Tiene secciones (cada
denotado por un [encabezamiento]) y pares clave / valor dentro de las secciones. Las secciones y sus
los valores permitidos se describen a continuación.

Entorno Variables
Variables ambientales que están presentes en el ambiente en el momento en que supervisor is
iniciado se puede usar en el archivo de configuración usando la sintaxis de expresión de cadena de Python
% (ENV_X) s:

[programa: ejemplo]
comando = / usr / bin / ejemplo --loglevel =% (ENV_LOGLEVEL) s

En el ejemplo anterior, la expresión % (ENV_LOGLEVEL) s se ampliaría al valor de
la variable de entorno NIVEL DE REGISTRO.

NOTA:
En Supervisor 3.2 y posterior, % (ENV_X) s las expresiones son compatibles con todas las opciones. En
versiones anteriores, algunas opciones las admiten, pero la mayoría no. Consulte la documentación para
cada opción a continuación.

[unix_http_servidor] Sección Configuración
El supervisord.conf el archivo contiene una sección llamada [unix_http_servidor] bajo el cual
Los parámetros de configuración para un servidor HTTP que escucha en un socket de dominio UNIX deben ser
insertado. Si el archivo de configuración no tiene [unix_http_servidor] sección, un dominio UNIX
El servidor HTTP de socket no se iniciará. Los valores de configuración permitidos son los
de la siguiente manera.

[unix_http_servidor] Sección Valores
presentar
Una ruta a un socket de dominio UNIX (p. Ej. /tmp/supervisord.sock) sobre qué supervisor
Escuche las solicitudes HTTP / XML-RPC. supervisorctl utiliza XML-RPC para comunicarse con
supervisor sobre este puerto. Esta opción puede incluir el valor % (aquí) s, que se expande
al directorio en el que supervisor Se encontró el archivo de configuración.

Predeterminado: Ninguno.

Requerido: No.

Introducido: 3.0

chmod
Cambie los bits del modo de permiso de UNIX del socket de dominio de UNIX a este valor en
puesta en marcha.

Predeterminado: 0700

Requerido: No.

Introducido: 3.0

chown
Cambie el usuario y el grupo del archivo de socket a este valor. Puede ser un nombre de usuario de UNIX
(p.ej aceite) o un nombre de usuario y un grupo de UNIX separados por dos puntos (p. ej. crisma: rueda).

Predeterminado: Utilice el nombre de usuario y el grupo del usuario que inicia supervisord.

Requerido: No.

Introducido: 3.0

nombre de usuario
El nombre de usuario requerido para la autenticación en este servidor HTTP.

Predeterminado: No se requiere nombre de usuario.

Requerido: No.

Introducido: 3.0

la contraseña
La contraseña requerida para la autenticación en este servidor HTTP. Esto puede ser un texto sin cifrar
contraseña, o se puede especificar como un hash SHA-1 si tiene como prefijo la cadena {SHA}. For
ejemplo, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d es la versión almacenada en SHA del
contraseña "la contraseña".

Tenga en cuenta que la contraseña hash debe estar en formato hexadecimal.

Predeterminado: No se requiere contraseña.

Requerido: No.

Introducido: 3.0

[unix_http_servidor] Sección Ejemplo
[unix_http_servidor]
archivo = /tmp/supervisor.sock
chmod = 0777
chown = nadie: nogroup
nombre de usuario = usuario
contraseña = 123

[inet_http_servidor] Sección Configuración
El supervisord.conf el archivo contiene una sección llamada [inet_http_servidor] bajo el cual
Los parámetros de configuración para un servidor HTTP que escucha en un socket TCP (Internet) deben
ser insertado. Si el archivo de configuración no tiene [inet_http_servidor] sección, un HTTP inet
el servidor no se iniciará. Los valores de configuración permitidos son los siguientes.

[inet_http_servidor] Sección Valores
Puerto
Un host TCP: valor de puerto o (p. Ej. 127.0.0.1:9001) sobre qué supervisor escuchará
Solicitudes HTTP / XML-RPC. supervisorctl utilizará XML-RPC para comunicarse con supervisor
sobre este puerto. Para escuchar en todas las interfaces de la máquina, utilice : 9001 or *: 9001.

Predeterminado: Ningún valor predeterminado.

Requerido: Si.

Introducido: 3.0

nombre de usuario
El nombre de usuario requerido para la autenticación en este servidor HTTP.

Predeterminado: No se requiere nombre de usuario.

Requerido: No.

Introducido: 3.0

la contraseña
La contraseña requerida para la autenticación en este servidor HTTP. Esto puede ser un texto sin cifrar
contraseña, o se puede especificar como un hash SHA-1 si tiene como prefijo la cadena {SHA}. For
ejemplo, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d es la versión almacenada en SHA del
contraseña "la contraseña".

Tenga en cuenta que la contraseña hash debe estar en formato hexadecimal.

Predeterminado: No se requiere contraseña.

Requerido: No.

Introducido: 3.0

[inet_http_servidor] Sección Ejemplo
[inet_http_servidor]
puerto = 127.0.0.1:9001
nombre de usuario = usuario
contraseña = 123

[supervisor] Sección Configuración
El supervisord.conf el archivo contiene una sección llamada [supervisor] en que escenarios globales
está relacionada con el supervisor debe insertarse el proceso. Estos son los siguientes.

[supervisor] Sección Valores
archivo de registro
La ruta al registro de actividad del proceso supervisor. Esta opción puede incluir el
propuesta de % (aquí) s, que se expande al directorio en el que la configuración del supervisor
se encontró el archivo.

Predeterminado: $ CWD / supervisord.log

Requerido: No.

Introducido: 3.0

archivo de registro_maxbytes
El número máximo de bytes que puede consumir el archivo de registro de actividad antes de
rotado (los multiplicadores de sufijo como "KB", "MB" y "GB" se pueden utilizar en el valor). Colocar
este valor a 0 para indicar un tamaño de registro ilimitado.

Predeterminado: 50MB

Requerido: No.

Introducido: 3.0

logfile_backups
El número de copias de seguridad que se deben conservar como resultado de la rotación del archivo de registro de actividad. Si está configurado
a 0, no se guardarán copias de seguridad.

Predeterminado: 10

Requerido: No.

Introducido: 3.0

nivel de registro
El nivel de registro, que dicta lo que se escribe en el registro de actividad del supervisor. Uno de
crítico, error, advertir, info, depurar, rastrearo decir tonterías. Tenga en cuenta que a nivel de registro depurar,
el archivo de registro de supervisor registrará la salida stderr / stdout de sus procesos secundarios
e información ampliada sobre los cambios de estado del proceso, que es útil para depurar un
proceso que no se inicia correctamente. Consulte también: activity_log_levels.

Predeterminado: información

Requerido: No.

Introducido: 3.0

archivo pid
La ubicación en la que supervisord guarda su archivo pid. Esta opción puede incluir el
propuesta de % (aquí) s, que se expande al directorio en el que la configuración del supervisor
se encontró el archivo.

Predeterminado: $ CWD / supervisord.pid

Requerido: No.

Introducido: 3.0

umask
La umask del proceso supervisor.

Predeterminado: 022

Requerido: No.

Introducido: 3.0

Nodaemon
Si es verdadero, supervisord comenzará en primer plano en lugar de demonizar.

Predeterminado: falso

Requerido: No.

Introducido: 3.0

minfds
El número mínimo de descriptores de archivos que deben estar disponibles antes de que el supervisor
empezar con éxito. Se hará una llamada a setrlimit para intentar subir el soft y
límites estrictos del proceso de supervisión para satisfacer minfds. El límite estricto solo puede ser
se genera si supervisord se ejecuta como root. El supervisor usa descriptores de archivos generosamente, y
entrará en un modo de falla cuando no se pueda obtener uno del sistema operativo, por lo que es útil estar
capaz de especificar un valor mínimo para garantizar que no se agote durante la ejecución.
Esta opción es particularmente útil en Solaris, que tiene un límite bajo de fd por proceso por
predeterminada.

Predeterminado: 1024

Requerido: No.

Introducido: 3.0

minproces
El número mínimo de descriptores de proceso que deben estar disponibles antes de que el supervisor
comenzará con éxito. Se hará una llamada a setrlimit para intentar subir el soft
y límites estrictos del proceso de supervisión para satisfacer minproces. El límite duro puede
solo se generará si supervisord se ejecuta como root. el supervisor entrará en un modo de falla
cuando el sistema operativo se queda sin descriptores de proceso, por lo que es útil asegurarse de que
los descriptores de proceso están disponibles en supervisor puesta en marcha.

Predeterminado: 200

Requerido: No.

Introducido: 3.0

no limpiar
Evite que el supervisor borre cualquier AUTO archivos de registro secundarios en el momento del inicio.
Útil para depurar.

Predeterminado: falso

Requerido: No.

Introducido: 3.0

childlogdir
El directorio utilizado para AUTO archivos de registro de niños. Esta opción puede incluir el valor
% (aquí) s, que se expande al directorio en el que supervisor archivo de configuración
fue encontrado.

Predeterminado: valor de Python tempfile.get_tempdir ()

Requerido: No.

Introducido: 3.0

usuario
Instruir supervisor para cambiar usuarios a esta cuenta de usuario de UNIX antes de realizar cualquier
procesamiento significativo. El usuario solo se puede cambiar si supervisor se inicia como el
usuario root. Si supervisor no puede cambiar de usuario, continuará pero escribirá un
mensaje de registro en el crítico nivel diciendo que no puede quitar privilegios.

Predeterminado: no cambie de usuario

Requerido: No.

Introducido: 3.0

directorio
Cuándo supervisor daemonizes, cambie a este directorio. Esta opción puede incluir el
propuesta de % (aquí) s, que se expande al directorio en el que supervisor configuración
se encontró el archivo.

Predeterminado: no cd

Requerido: No.

Introducido: 3.0

tira_ansi
Elimine todas las secuencias de escape ANSI de los archivos de registro secundarios.

Predeterminado: falso

Requerido: No.

Introducido: 3.0

entorno
Una lista de pares clave / valor en el formulario CLAVE = "val", CLAVE2 = "val2" que se colocará en el
supervisor proceso 'entorno (y como resultado en todo su proceso hijo'
entornos). Esta opción puede incluir el valor % (aquí) s, que se expande a la
directorio en el que se encontró el archivo de configuración del supervisor. Valores que contienen
los caracteres no alfanuméricos deben estar entrecomillados (p. ej. CLAVE = "val: 123", CLAVE2 = "val, 456").
De lo contrario, citar los valores es opcional pero se recomienda. Para escapar por ciento
caracteres, simplemente use dos. (p.ej URI = "/ first %% 20name") Nota que los subprocesos
heredar las variables de entorno del shell utilizado para iniciar supervisor excepto por el
las anuladas aquí y dentro del programa entorno opción. Ver
subproceso_entorno.

Predeterminado: sin valores

Requerido: No.

Introducido: 3.0

identificador
La cadena de identificación para este proceso supervisor, utilizada por la interfaz RPC.

Predeterminado: supervisor

Requerido: No.

Introducido: 3.0

[supervisor] Sección Ejemplo
[supervisor]
archivo de registro = /tmp/supervisord.log
logfile_maxbytes = 50 MB
logfile_backups = 10
nivel de registro = información
archivo pid = /tmp/supervisord.pid
nodaemon = falso
minfds = 1024
procesos mínimos = 200
máscara = 022
usuario = crisma
identificador = supervisor
directorio = / Tmp
nocleanup = verdadero
directorio_hijo = / Tmp
strip_ansi = falso
entorno = CLAVE1 = "valor1", CLAVE2 = "valor2"

[supervisorctl] Sección Configuración
El archivo de configuración puede contener ajustes para el supervisorctl shell interactivo
programa. Estas opciones se enumeran a continuación.

[supervisorctl] Sección Valores
URL del servidor
La URL que se debe utilizar para acceder al servidor supervisor, p. Ej.
http://localhost: 9001. Para sockets de dominio UNIX, utilice
unix: ///absolute/path/to/file.sock.

Predeterminado: http://localhost: 9001

Requerido: No.

Introducido: 3.0

nombre de usuario
El nombre de usuario que se debe pasar al servidor supervisor para su uso en la autenticación. Esto debería
ser igual que nombre de usuario de la configuración del servidor supervisor para el puerto o UNIX
socket de dominio al que está intentando acceder.

Predeterminado: Sin nombre de usuario

Requerido: No.

Introducido: 3.0

la contraseña
La contraseña que se debe pasar al servidor supervisor para su uso en la autenticación. Esto debería
ser la versión en texto claro de la contraseña de la configuración del servidor supervisor para el
puerto o socket de dominio UNIX al que está intentando acceder. Este valor no se puede pasar como
un hash SHA. A diferencia de otras contraseñas especificadas en este archivo, debe proporcionarse en
Borrar texto.

Predeterminado: Sin contraseña

Requerido: No.

Introducido: 3.0

prompt
Cadena utilizada como indicador de supervisorctl.

Predeterminado: supervisor

Requerido: No.

Introducido: 3.0

archivo_historial
Un camino para usar como readline archivo de historial persistente. Si habilita esta función
eligiendo una ruta, sus comandos supervisorctl se mantendrán en el archivo, y puede usar
readline (por ejemplo, flecha hacia arriba) para invocar los comandos que realizó en su último supervisorctl
de preguntas y respuestas.

Predeterminado: Ningún archivo

Requerido: No.

Introducido: 3.0a5

[supervisorctl] Sección Ejemplo
[supervisorctl]
serverurl = unix: ///tmp/supervisor.sock
nombre de usuario = chris
contraseña = 123
aviso = mi supervisor

[programa: x] Sección Configuración
El archivo de configuración debe contener uno o más programa secciones para supervisar
para saber qué programas debe iniciar y controlar. El valor del encabezado es un valor compuesto.
Es la palabra "programa", seguida directamente por dos puntos, luego el nombre del programa. Un encabezado
valor de [programa: foo] describe un programa con el nombre de "foo". El nombre se usa
dentro de las aplicaciones cliente que controlan los procesos que se crean como resultado de este
configuración. Es un error crear un programa sección que no tiene nombre. los
El nombre no debe incluir dos puntos ni corchetes. El valor del nombre es
utilizado como el valor de la % (nombre_programa) s expansión de expresión de cadena dentro de otros valores
donde se especifique.

NOTA:
A [programa: x] En realidad, la sección representa un "grupo de procesos homogéneo" para el supervisor.
(a partir de 3.0). Los miembros del grupo se definen por la combinación de los números
y nombre del proceso parámetros en la configuración. De forma predeterminada, si numprocs y
process_name no se modifican con respecto a sus valores predeterminados, el grupo representado por
[programa: x] será nombrado x y tendrá un solo proceso llamado x en eso. Esto
proporciona un mínimo de compatibilidad con versiones anteriores de supervisor, que no
No trate las secciones del programa como definiciones de grupos de procesos homogéneos.

Pero, por ejemplo, si tienes un [programa: foo] sección con un números de 3 y un
nombre del proceso expresión de % (nombre_programa) s _% (núm_proceso) 02d, el grupo "foo"
contienen tres procesos, llamados foo_00, foo_01y foo_02. Esto hace posible
iniciar una serie de procesos muy similares utilizando un solo [programa: x] sección. Todos
Los nombres de los archivos de registro, todas las cadenas del entorno y el comando de los programas también pueden contener
expresiones de cadena de Python similares, para pasar parámetros ligeramente diferentes a cada
.

[programa: x] Sección Valores
comando
El comando que se ejecutará cuando se inicie este programa. El comando puede ser
absoluto (p. ej. / ruta / a / nombre de programa) o pariente (p. ej. nombre del programa). Si esto es
relativo, el entorno del supervisor $ RUTA se buscará el ejecutable.
Los programas pueden aceptar argumentos, p. Ej. / ruta / al / programa foo de caramelos. La línea de comando puede usar
comillas dobles para agrupar argumentos con espacios para pasar al programa, por ejemplo
/ ruta / al / programa / nombre -p "foo bar". Tenga en cuenta que el valor de comando puede incluir Python
expresiones de cadena, p. ej. / ruta / a / nombre de programa --port = 80% (núm_proceso) 02d podría expandirse
a / ruta / a / nombre de programa --port = 8000 en tiempo de ejecución. Se evalúan las expresiones de cadena
contra un diccionario que contiene las claves Nombre del grupo, nombre_nodo_host, núm_proceso,
nombre_programa, aquí (el directorio del archivo de configuración de supervisor), y todos
variables de entorno del supervisor con el prefijo ENV_. Los programas controlados deben
ellos mismos no ser demonios, ya que el supervisor asume que es responsable de demonizar sus
subprocesos (ver nondaemonizing_of_subprocesses).

Predeterminado: Ningún valor predeterminado.

Requerido: Si.

Introducido: 3.0

nombre del proceso
Una expresión de cadena de Python que se utiliza para componer el nombre del proceso supervisor para este
proceso. Por lo general, no necesita preocuparse por configurar esto a menos que cambie
números. La expresión de cadena se evalúa contra un diccionario que incluye
Nombre del grupo, nombre_nodo_host, núm_proceso, nombre_programay aquí (el directorio de la
archivo de configuración de supervisor).

Predeterminado: % (nombre_programa) s

Requerido: No.

Introducido: 3.0

números
El supervisor iniciará tantas instancias de este programa como las nombre numprocs. Nota
que si numprocs> 1, el nombre del proceso la expresión debe incluir % (núm_proceso) s (o cualquier
otra expresión de cadena de Python válida que incluya núm_proceso) dentro de ella.

Predeterminado: 1

Requerido: No.

Introducido: 3.0

numprocs_start
Un desplazamiento de entero que se utiliza para calcular el número en el que números empieza.

Predeterminado: 0

Requerido: No.

Introducido: 3.0

lista de prioridades
La prioridad relativa del programa en el orden de inicio y apagado. Más bajo
Las prioridades indican los programas que se inician primero y se cierran por última vez al inicio y cuando
Los comandos agregados se utilizan en varios clientes (por ejemplo, "iniciar todo" / "detener todo"). Más alto
las prioridades indican los programas que comienzan en último lugar y se cierran primero.

Predeterminado: 999

Requerido: No.

Introducido: 3.0

inicio automático
Si es verdadero, este programa se iniciará automáticamente cuando se inicie el supervisor.

Predeterminado: cierto

Requerido: No.

Introducido: 3.0

iniciosecs
El número total de segundos que el programa necesita para seguir ejecutándose después de un inicio para
considerar el inicio exitoso (moviendo el proceso desde el COMENZANDO estado al
RUNNING estado). Ajustado a 0 para indicar que el programa no necesita seguir ejecutándose durante
cantidad particular de tiempo.

NOTA:
Incluso si un proceso sale con un código de salida "esperado" (consulte códigos de salida), el comienzo
aún se considerará una falla si el proceso sale más rápido de lo que iniciosecs.

Predeterminado: 1

Requerido: No.

Introducido: 3.0

reintentos
El número de intentos fallidos en serie que supervisor permitirá al intentar
Inicie el programa antes de darse por vencido y poner el proceso en un FATAL estado. Ver
process_states para una explicación del FATAL estado.

Predeterminado: 3

Requerido: No.

Introducido: 3.0

reinicio automático
Especifica si supervisor debe reiniciar automáticamente un proceso si sale cuando está
en la categoría Industrial. RUNNING estado. Puede ser uno de false, inesperadoo su verdadero. Si false, el proceso
no se reiniciará automáticamente. Si inesperado, el proceso se reiniciará cuando el
El programa sale con un código de salida que no es uno de los códigos de salida asociados con este
configuración del proceso (ver códigos de salida) Si su verdadero, el proceso será incondicional
reiniciado cuando sale, sin tener en cuenta su código de salida.

NOTA:
reinicio automático controla si supervisor reiniciará automáticamente un programa si sale
después de que se haya iniciado con éxito (el proceso está en el RUNNING estado).

supervisor tiene un mecanismo de reinicio diferente para cuando el proceso se está iniciando
(el proceso está en el COMENZANDO estado). Los reintentos durante el inicio del proceso son
controlado por iniciosecs y reintentos.

Predeterminado: inesperado

Requerido: No.

Introducido: 3.0

códigos de salida
La lista de códigos de salida "esperados" para este programa utilizado con reinicio automático. Si el
reinicio automático el parámetro se establece en inesperado, y el proceso finaliza de cualquier otra forma que no sea
como resultado de una solicitud de detención del supervisor, supervisor reiniciará el proceso si
sale con un código de salida que no está definido en esta lista.

Predeterminado: 0,2

Requerido: No.

Introducido: 3.0

señal de parada
La señal utilizada para matar el programa cuando se solicita una parada. Puede ser cualquiera de TERM,
HUP, INT, QUIT, KILL, USR1 o USR2.

Predeterminado: TÉRMINO

Requerido: No.

Introducido: 3.0

pararesperarsegundos
La cantidad de segundos para esperar a que el sistema operativo devuelva un SIGCHILD a supervisor después de la
Se ha enviado una señal de parada al programa. Si este número de segundos transcurre antes
supervisor recibe un SIGCHILD del proceso, supervisor intentará matarlo
con un SIGKILL final.

Predeterminado: 10

Requerido: No.

Introducido: 3.0

grupo de personas
Si es verdadero, la bandera hace que el supervisor envíe la señal de parada a todo el grupo de procesos.
e implica grupokillas es verdad. Esto es útil para programas, como Flask en depuración
modo, que no propagan señales de alto a sus hijos, dejándolos huérfanos.

Predeterminado: falso

Requerido: No.

Introducido: 3.0b1

grupokillas
Si es verdadero, al recurrir a enviar SIGKILL al programa para terminarlo, envíelo a su
en cambio, todo el grupo de proceso, cuidando a sus hijos también, útil, por ejemplo, con
Programas de Python que usan multiprocesamiento.

Predeterminado: falso

Requerido: No.

Introducido: 3.0a11

usuario
Instruir supervisor para utilizar esta cuenta de usuario de UNIX como la cuenta que ejecuta el
programa. El usuario solo se puede cambiar si supervisor se ejecuta como usuario root. Si
supervisor no puede cambiar al usuario especificado, el programa no se iniciará.

NOTA:
El usuario se cambiará usando setuid solamente. Esto no inicia un shell de inicio de sesión y
no cambia variables de entorno como USUARIO or INICIO. Vea
subprocess_environment para obtener más detalles.

Predeterminado: No cambie de usuario

Requerido: No.

Introducido: 3.0

redirigir_stderr
Si es verdadero, hace que la salida stderr del proceso se envíe de vuelta a supervisor en su salida estándar
descriptor de archivo (en términos de shell de UNIX, esto es el equivalente a ejecutar /el programa
2> y 1).

NOTA:
No ajustar redirect_stderr = true en una [escuchador de eventos: x] sección. Oyentes de eventos
use stdout y stdin para comunicarse con supervisor. Si stderr es redirigido,
salida de stderr interferirá con el protocolo eventlistener.

Predeterminado: falso

Requerido: No.

Introducido: 3.0, reemplaza a 2.0 log_stdout y log_stderr

stdout_archivo de registro
Coloque el resultado de la salida estándar del proceso en este archivo (y si redirect_stderr es verdadero, también coloque
stderr en este archivo). Si stdout_archivo de registro está desarmado o configurado en AUTO, supervisora
elegirá automáticamente una ubicación de archivo. Si esto se establece en NINGUNO, el supervisor
no cree ningún archivo de registro. AUTO Los archivos de registro y sus copias de seguridad se eliminarán cuando supervisor
reinicia. los stdout_archivo de registro El valor puede contener expresiones de cadena de Python que
evaluado contra un diccionario que contiene las claves Nombre del grupo, nombre_nodo_host,
núm_proceso, nombre_programay aquí (el directorio del archivo de configuración del supervisor).

NOTA:
No es posible que dos procesos compartan un solo archivo de registro (stdout_archivo de registro)
cuando la rotaciónstdout_logfile_maxbytes) está habilitado. Esto resultará en el archivo
siendo corrompido.

Predeterminado: AUTO

Requerido: No.

Introducido: 3.0, reemplaza a 2.0 archivo de registro

stdout_logfile_maxbytes
El número máximo de bytes que puede consumir stdout_archivo de registro antes de que se gire
(En el valor se pueden utilizar multiplicadores de sufijos como "KB", "MB" y "GB"). Establecer esto
valor a 0 para indicar un tamaño de registro ilimitado.

Predeterminado: 50MB

Requerido: No.

Introducido: 3.0, reemplaza a 2.0 archivo de registro_maxbytes

stdout_logfile_copias de seguridad
El número de stdout_archivo de registro copias de seguridad para mantener a su alrededor resultantes del proceso de registro de salida estándar
rotación de archivos. Si se establece en 0, no se guardarán copias de seguridad.

Predeterminado: 10

Requerido: No.

Introducido: 3.0, reemplaza a 2.0 logfile_backups

stdout_capture_maxbytes
Número máximo de bytes escritos para capturar FIFO cuando el proceso está en "modo de captura de salida estándar"
(ver modo_de_captura). Debe ser un número entero (multiplicadores de sufijo como "KB", "MB" y "GB"
se puede utilizar en el valor). Si este valor es 0, el modo de captura de proceso estará desactivado.

Predeterminado: 0

Requerido: No.

Introducido: 3.0, reemplaza a 2.0 logfile_backups

stdout_events_habilitado
Si es verdadero, se emitirán eventos PROCESS_LOG_STDOUT cuando el proceso escriba en su
descriptor de archivo stdout. Los eventos solo se emitirán si el descriptor de archivo no está
en modo de captura en el momento en que se reciben los datos (ver modo_de_captura).

Predeterminado: 0

Requerido: No.

Introducido: 3.0a7

stderr_archivo de registro
Coloque la salida del proceso stderr en este archivo a menos que redirigir_stderr es verdad. Acepta el
mismos tipos de valor que stdout_archivo de registro y puede contener las mismas expresiones de cadena de Python.

NOTA:
No es posible que dos procesos compartan un solo archivo de registro (stderr_archivo de registro)
cuando la rotaciónstderr_logfile_maxbytes) está habilitado. Esto resultará en el archivo
siendo corrompido.

Predeterminado: AUTO

Requerido: No.

Introducido: 3.0

stderr_logfile_maxbytes
El número máximo de bytes antes de la rotación del archivo de registro para stderr_archivo de registro. Acepta el
mismos tipos de valor que stdout_logfile_maxbytes.

Predeterminado: 50MB

Requerido: No.

Introducido: 3.0

stderr_logfile_copias de seguridad
El número de copias de seguridad que se deben conservar como resultado de la rotación del archivo de registro stderr del proceso.
Si se establece en 0, no se guardarán copias de seguridad.

Predeterminado: 10

Requerido: No.

Introducido: 3.0

stderr_capture_maxbytes
Número máximo de bytes escritos para capturar FIFO cuando el proceso está en "modo de captura estándar"
(ver modo_de_captura). Debe ser un número entero (multiplicadores de sufijo como "KB", "MB" y "GB"
se puede utilizar en el valor). Si este valor es 0, el modo de captura de proceso estará desactivado.

Predeterminado: 0

Requerido: No.

Introducido: 3.0

stderr_events_habilitado
Si es verdadero, se emitirán eventos PROCESS_LOG_STDERR cuando el proceso escriba en su
descriptor de archivo stderr. Los eventos solo se emitirán si el descriptor de archivo no está
en modo de captura en el momento en que se reciben los datos (ver modo_de_captura).

Predeterminado: falso

Requerido: No.

Introducido: 3.0a7

entorno
Una lista de pares clave / valor en el formulario CLAVE = "val", CLAVE2 = "val2" que se colocará en el
entorno del proceso hijo. La cadena de entorno puede contener una cadena de Python
expresiones que se evaluarán contra un diccionario que contiene Nombre del grupo,
nombre_nodo_host, núm_proceso, nombre_programay aquí (el directorio del supervisor
archivo de configuración). Los valores que contengan caracteres no alfanuméricos se deben citar (p. Ej.
CLAVE = "val: 123", CLAVE2 = "val, 456"). De lo contrario, citar los valores es opcional pero
recomendado. Nota que el subproceso heredará las variables de entorno del
shell utilizado para iniciar "supervisor" excepto los que se anulan aquí. Ver
subproceso_entorno.

Predeterminado: Sin entorno extra

Requerido: No.

Introducido: 3.0

directorio
Una ruta de archivo que representa un directorio al que supervisor debería chdir temporalmente
antes de ejecutar al niño.

Predeterminado: No chdir (heredar supervisor)

Requerido: No.

Introducido: 3.0

umask
Un número octal (por ejemplo, 002, 022) que representa la umask del proceso.

Predeterminado: Sin umask especial (heredar del supervisor)

Requerido: No.

Introducido: 3.0

URL del servidor
La URL pasada en el entorno al proceso de subproceso como SUPERVISOR_SERVER_URL
(consulta: supervisor.childutils) para permitir que el subproceso se comunique fácilmente con el
servidor HTTP interno. Si se proporciona, debe tener la misma sintaxis y estructura que el
[supervisorctl] opción de sección del mismo nombre. Si está configurado en AUTO o no está configurado,
El supervisor construirá automáticamente una URL de servidor, dando preferencia a un servidor.
que escucha en sockets de dominio UNIX sobre uno que escucha en un socket de Internet.

Predeterminado: AUTOMÁTICO

Requerido: No.

Introducido: 3.0

[programa: x] Sección Ejemplo
[programa: gato]
comando =/ papelera / gato
nombre_proceso =% (nombre_programa) s
numprocs = 1
directorio =/ Tmp
umask = 022
prioridad = 999
inicio automático = verdadero
autorestart = inesperado
startsecs = 10
startretries = 3
códigos de salida = 0,2
StopSignal = TERM
stopwaitsecs = 10
stopasgroup = falso
killasgroup = falso
usuario = crisma
redirect_stderr = false
stdout_logfile = / a / ruta
stdout_logfile_maxbytes = 1 MB
stdout_logfile_backups = 10
stdout_capture_maxbytes = 1 MB
stdout_events_enabled = falso
stderr_logfile = / a / ruta
stderr_logfile_maxbytes = 1 MB
stderr_logfile_backups = 10
stderr_capture_maxbytes = 1 MB
stderr_events_enabled = falso
entorno = A = "1", B = "2"
serverurl = AUTO

[incluir] Sección Configuración
El supervisord.conf el archivo puede contener una sección llamada [incluir]. Si la configuración
el archivo contiene un [incluir] sección, debe contener una única clave denominada "archivos". los
Los valores de esta clave especifican otros archivos de configuración que se incluirán en el
configuración.

[incluir] Sección Valores
archivos
Una secuencia de archivos globales separados por espacios. Cada archivo global puede ser absoluto o relativo.
Si el archivo glob es relativo, se considera relativo a la ubicación del
archivo de configuración que lo incluye. Un "glob" es un patrón de archivo que coincide con un
patrón especificado de acuerdo con las reglas utilizadas por el shell de Unix. Ninguna expansión de tilde es
hecho, pero *, ?y rangos de caracteres expresados ​​con [] se emparejará correctamente.
No se admiten las inclusiones recursivas de archivos incluidos.

Predeterminado: No predeterminado (obligatorio)

Requerido: Si.

Introducido: 3.0

[incluir] Sección Ejemplo
[incluir]
archivos = /an/absolute/filename.conf /an/absolute/*.conf foo.conf config ??. conf

[grupo: x] Sección Configuración
A menudo es útil agrupar grupos de procesos "homogéneos" (también conocidos como "programas") en un
grupo de procesos "heterogéneo" para que puedan ser controlados como una unidad desde el supervisor
Varias interfaces de controlador.

Para colocar programas en un grupo de modo que pueda tratarlos como una unidad, defina un [grupo: x] .
en su archivo de configuración. El valor del encabezado del grupo es un compuesto. Es la palabra
"grupo", seguido directamente por dos puntos, luego el nombre del grupo. Un valor de encabezado de [grupo: foo]
describe un grupo con el nombre de "foo". El nombre se utiliza en las aplicaciones cliente.
que controlan los procesos que se crean como resultado de esta configuración. Es un
error para crear un grupo de XNUMX sección que no tiene nombre. El nombre no debe incluir un
carácter de dos puntos o un carácter de corchete.

Para una [grupo: x], debe haber uno o más [programa: x] secciones en otras partes de su
archivo de configuración, y el grupo debe referirse a ellos por su nombre en el programas .

Si los grupos de procesos "homogéneos" (representados por secciones del programa) se colocan en un
grupo "heterogéneo" a través de [grupo: x] sección programas línea, los grupos homogéneos que
están implícitos en la sección del programa no existirán en tiempo de ejecución en supervisor. En cambio, todos
Los procesos pertenecientes a cada uno de los grupos homogéneos se colocarán en el
grupo heterogéneo. Por ejemplo, dada la siguiente configuración de grupo:

[grupo: foo]
programas = bar, baz
prioridad = 999

Dado lo anterior, al inicio del supervisor, el de caramelos y baz los grupos homogéneos no
existen, y los procesos que habrían estado bajo ellos ahora se moverán al foo
grupo.

[grupo: x] Sección Valores
programas
Una lista de nombres de programas separados por comas. Los programas que se enumeran se convierten en miembros
del grupo.

Predeterminado: No predeterminado (obligatorio)

Requerido: Si.

Introducido: 3.0

lista de prioridades
Un número de prioridad análogo a un [programa: x] valor de prioridad asignado al grupo.

Predeterminado: 999

Requerido: No.

Introducido: 3.0

[grupo: x] Sección Ejemplo
[grupo: foo]
programas = bar, baz
prioridad = 999

[programa-fcgi: x] Sección Configuración
El supervisor puede gestionar grupos de FastCGI procesos que todos escuchan en el mismo socket.
Hasta ahora, la flexibilidad de implementación de FastCGI era limitada. Para obtener el proceso completo
administración, podría usar mod_fastcgi en Apache, pero luego se quedó atascado con Apache
Modelo de concurrencia ineficiente de un proceso o subproceso por conexión. Además de
requiriendo más recursos de CPU y memoria, el proceso / subproceso por modelo de conexión puede ser
saturado rápidamente por un recurso lento, evitando que se sirvan otros recursos. En
para aprovechar los nuevos servidores web controlados por eventos, como lighttpd o nginx, que
no incluye un administrador de procesos incorporado, tenía que usar scripts como cgi-fcgi o
spawn-fcgi. Estos se pueden utilizar junto con un administrador de procesos como supervisor
o daemontools pero requieren que cada proceso hijo FastCGI se vincule a su propio socket. los
Las desventajas de esto son: configuración del servidor web innecesariamente complicada, mala
se reinicia y se reduce la tolerancia a fallos. Con menos sockets para configurar, servidor web
las configuraciones son mucho más pequeñas si los grupos de procesos FastCGI pueden compartir sockets. Compartido
Los sockets permiten reinicios elegantes porque el socket permanece vinculado por el proceso principal
mientras se reinicia cualquiera de los procesos secundarios. Finalmente, los sockets compartidos son más
tolerante a fallas porque si un proceso dado falla, otros procesos pueden continuar sirviendo
conexiones entrantes.

Con el soporte de generación de FastCGI integrado, Supervisor le ofrece lo mejor de ambos mundos.
Obtiene una gestión de procesos con todas las funciones con grupos de procesos FastCGI que comparten sockets
sin estar vinculado a un servidor web en particular. Es una clara separación de preocupaciones
permitiendo que el servidor web y el administrador de procesos hagan cada uno lo que mejor saben hacer.

NOTA:
El administrador de sockets en Supervisor se desarrolló originalmente para admitir procesos FastCGI
pero no se limita a FastCGI. También se pueden utilizar otros protocolos sin especial
configuración. Cualquier programa que pueda acceder a un socket abierto desde un descriptor de archivo (p. Ej.
con socket.fromfd en Python) puede usar el administrador de sockets. El supervisor
crear automáticamente el socket, enlazar y escuchar antes de bifurcar al primer hijo en un
grupo. El conector se pasará a cada hijo en el número de descriptor de archivo 0 (cero).
Cuando salga el último niño del grupo, el supervisor cerrará el enchufe.

Todas las opciones disponibles para [programa: x] Las secciones también son respetadas por programa-fcgi
.

[programa-fcgi: x] Sección Valores
[programa-fcgi: x] las secciones tienen una sola tecla que [programa: x] secciones no tienen.

enchufe
El socket FastCGI para este programa, ya sea TCP o socket de dominio UNIX. Para sockets TCP,
use este formato: tcp: // localhost: 9002. Para sockets de dominio UNIX, utilice
unix: ///absolute/path/to/file.sock. Las expresiones de cadena se evalúan contra un
diccionario que contiene las claves "nombre_programa" y "aquí" (el directorio del
archivo de configuración de supervisor).

Predeterminado: Ningún valor predeterminado.

Requerido: Si.

Introducido: 3.0

propietario_enchufe
Para sockets de dominio UNIX, este parámetro se puede utilizar para especificar el usuario y el grupo para
el enchufe FastCGI. Puede ser un nombre de usuario de UNIX (por ejemplo, crisma) o un nombre de usuario y un grupo de UNIX
separados por dos puntos (por ejemplo, crisma: rueda).

Predeterminado: Utiliza el usuario y el grupo establecidos para el programa fcgi

Requerido: No.

Introducido: 3.0

modo_enchufe
Para sockets de dominio UNIX, este parámetro se puede utilizar para especificar el modo de permiso.

Predeterminado: 0700

Requerido: No.

Introducido: 3.0

Consulta [programa: x] Sección Configuración para otras claves permitidas, delta las restricciones anteriores
y adiciones.

[programa-fcgi: x] Sección Ejemplo
[programa-fcgi: fcgiprogramname]
comando = / usr / bin / example.fcgi
socket = unix: /// var / run / supervisor /% (nombre_programa) s.sock
propietario_enchufe = crisma
modo_enchufe = 0700
nombre_proceso =% (nombre_programa) s _% (núm_proceso) 02d
numprocs = 5
directorio =/ Tmp
umask = 022
prioridad = 999
inicio automático = verdadero
autorestart = inesperado
startsecs = 1
startretries = 3
códigos de salida = 0,2
StopSignal = SALIR
stopasgroup = falso
killasgroup = falso
stopwaitsecs = 10
usuario = crisma
redirect_stderr = true
stdout_logfile = / a / ruta
stdout_logfile_maxbytes = 1 MB
stdout_logfile_backups = 10
stdout_events_enabled = falso
stderr_logfile = / a / ruta
stderr_logfile_maxbytes = 1 MB
stderr_logfile_backups = 10
stderr_events_enabled = falso
entorno = A = "1", B = "2"
serverurl = AUTO

[escuchador de eventos: x] Sección Configuración
Supervisor permite que los grupos de procesos homogéneos especializados ("grupos de escucha de eventos") sean
definido dentro del archivo de configuración. Estos grupos contienen procesos destinados a
recibir y responder a las notificaciones de eventos del sistema de eventos del supervisor. Ver eventos para
una explicación de cómo funcionan los eventos y cómo implementar programas que se pueden declarar como
oyentes de eventos.

Tenga en cuenta que todas las opciones disponibles para [programa: x] las secciones son respetadas por eventlistener
(secciones) excepto for stdout_capture_maxbytes y stderr_capture_maxbytes (oyentes de eventos
no puede emitir eventos de comunicación de proceso, consulte modo_de_captura).

[escuchador de eventos: x] Sección Valores
[escuchador de eventos: x] las secciones tienen algunas teclas que [programa: x] secciones no tienen.

tamaño del búfer
Tamaño del búfer de cola de eventos del grupo de escucha de eventos. Cuando el búfer de eventos de un grupo de oyentes
está desbordado (como puede suceder cuando un grupo de oyentes de eventos no puede mantenerse al día con todos los
eventos enviados a él), el evento más antiguo en el búfer se descarta.

eventos
Una lista separada por comas de nombres de tipos de eventos en los que este oyente está "interesado"
recibir notificaciones para (consulte event_types para obtener una lista de nombres de tipos de eventos válidos).

manejador_resultados
A paquetes_recursos entrada punto cadena que se resuelve en un Python invocable. El valor por defecto
Valor es supervisor.dispatchers: default_handler. Especificar un resultado alternativo
handler es algo muy poco común que se debe hacer y, como resultado, cómo crear uno es
no documentado.

Consulta [programa: x] Sección Configuración para otras claves permitidas, delta las restricciones anteriores
y adiciones.

[escuchador de eventos: x] Sección Ejemplo
[eventlistener: theventlistenername]
comando = / bin / eventlistener
nombre_proceso =% (nombre_programa) s _% (núm_proceso) 02d
numprocs = 5
eventos = PROCESS_STATE
buffer_size = 10
directorio =/ Tmp
umask = 022
prioridad = -1
inicio automático = verdadero
autorestart = inesperado
startsecs = 1
startretries = 3
códigos de salida = 0,2
StopSignal = SALIR
stopwaitsecs = 10
stopasgroup = falso
killasgroup = falso
usuario = crisma
redirect_stderr = false
stdout_logfile = / a / ruta
stdout_logfile_maxbytes = 1 MB
stdout_logfile_backups = 10
stdout_events_enabled = falso
stderr_logfile = / a / ruta
stderr_logfile_maxbytes = 1 MB
stderr_logfile_backups = 10
stderr_events_enabled = falso
entorno = A = "1", B = "2"
serverurl = AUTO

[rpcinterface: x] Sección Configuración
Adición rpcinterface: x La configuración del archivo de configuración solo es útil para las personas que
desea ampliar el supervisor con un comportamiento personalizado adicional.

En el archivo de configuración de muestra, hay una sección que se llama [rpcinterface: supervisor].
De forma predeterminada, se parece a lo siguiente.

[rpcinterface: supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface: make_main_rpcinterface

El [rpcinterface: supervisor] . deben permanecer en la configuración para el estándar
configuración del supervisor para que funcione correctamente. Si no quiere que el supervisor haga nada,
no hace ya fuera de la caja, esto es todo lo que necesita saber sobre este tipo de
.

Sin embargo, si desea agregar espacios de nombres de interfaz rpc para personalizar supervisor, debe
puede agregar adicionales [rpcinterface: foo] secciones, donde "foo" representa el espacio de nombres de
la interfaz (desde la raíz web), y el valor nombrado por supervisor.rpcinterface_factory
es un invocable de fábrica que debe tener una firma de función que acepte un solo
argumento posicional supervisor y tantos argumentos de palabras clave como sea necesario para realizar
configuración. Cualquier par clave / valor adicional definido dentro del [rpcinterface: x] la sección será
pasar como argumentos de palabra clave a la fábrica.

Aquí hay un ejemplo de una función de fábrica, creada en el __init__.py archivo de Python
PARA DOS mi paquete.

desde my.package.rpcinterface importar AnotherRPCInterface

def make_another_rpcinterface (supervisor, ** config):
reintentos = int (config.get ('reintentos', 0))
another_rpc_interface = AnotherRPCInterface (supervisor, reintentos)
devolver otra_rpc_interface

Y una sección en el archivo de configuración destinada a configurarlo.

[rpcinterface: otro]
supervisor.rpcinterface_factory = my.package: make_another_rpcinterface
reintentos = 1

[rpcinterface: x] Sección Valores
supervisor.rpcinterface_factory
paquetes_recursos "punto de entrada" nombre con puntos a la función de fábrica de su interfaz RPC.

Predeterminado: N/A

Requerido: No.

Introducido: 3.0

[rpcinterface: x] Sección Ejemplo
[rpcinterface: otro]
supervisor.rpcinterface_factory = my.package: make_another_rpcinterface
reintentos = 1

Subprocesos
supervisorEl propósito principal es crear y administrar procesos basados ​​en datos en su
archivo de configuración. Lo hace creando subprocesos. Cada subproceso generado por
El supervisor es administrado durante toda su vida por el supervisor (supervisor son los
proceso padre de cada proceso que crea). Cuando un niño muere, se le notifica al supervisor
su muerte a través del SEÑAL señal, y realiza la operación apropiada.

No emonizar of Subprocesos
Los programas destinados a ejecutarse bajo el supervisor no deben demonizarse a sí mismos. En cambio, ellos
debe ejecutarse en primer plano. No deben desprenderse del terminal del que están
se inician.

La forma más sencilla de saber si un programa se ejecutará en primer plano es ejecutar el comando que
invoca el programa desde un indicador de shell. Si te devuelve el control del terminal,
pero continúa ejecutándose, se está demonizando a sí mismo y es casi seguro que eso sea incorrecto
forma de ejecutarlo bajo supervisor. Quieres ejecutar un comando que esencialmente te requiere
para presionar Ctrl-C para recuperar el control de la terminal. Si te devuelve un indicador de shell
después de ejecutarlo sin necesidad de presionar Ctrl-C, no es útil bajo supervisión. Todos
los programas tienen opciones para ejecutarse en primer plano, pero no hay una "forma estándar" de hacerlo;
deberá leer la documentación de cada programa.

A continuación se muestran ejemplos de archivos de configuración que se sabe que inician programas comunes en
modo "primer plano" en Supervisor.

Ejemplos of Programa Configuraciones
A continuación, se muestran algunos ejemplos de configuración de programas del "mundo real":

APACHE 2.2.6
[programa: apache2]
comando = / ruta / a / httpd -c "ErrorLog / dev / stdout" -DFOREGROUND
redirect_stderr = true

Two Zope 2.X instancias y one ZEO servidor
[programa: zeo]
comando = / ruta / a / runzeo
prioridad = 1

[programa: zope1]
comando = / ruta / a / instancia / inicio / bin / runzope
prioridad = 2
redirect_stderr = true

[programa: zope2]
comando = / ruta / a / otra / instancia / inicio / bin / runzope
prioridad = 2
redirect_stderr = true

Postgres 8.X
[programa: postgres]
comando = / ruta / a / postmaster
; utilizamos la señal de apagado "rápido" SIGINT
señal de parada = INT
redirect_stderr = true

OpenLDAP bofetada
[programa: slapd]
comando = / ruta / a / slapd -f /ruta/a/slapd.conf -h ldap: //0.0.0.0: 8888
redirect_stderr = true

Otro Ejemplos
Otros ejemplos de scripts de shell que podrían usarse para iniciar servicios en supervisor can
ser encontrado en http://thedjbway.b0llix.net/services.html. Estos ejemplos son en realidad para
Daemon Tools pero la premisa es la misma para el supervisor.

Otra colección de recetas para iniciar varios programas en primer plano está disponible.
obtenidos de http://smarden.org/runit/runscripts.html.

pidproxy Programa
Algunos procesos (como mysqld) ignoran las señales enviadas al proceso real que es generado por
supervisor. En cambio, este tipo de programas crea un hilo / proceso "especial"
que se encarga de manejar las señales. Esto es problemático porque supervisor can
sólo mata un proceso que él mismo crea. Si un proceso creado por supervisor crea
sus propios procesos secundarios, supervisor no puedo matarlos.

Afortunadamente, este tipo de programas suelen escribir un "archivo pid" que contiene el
PID de proceso "especial", y está destinado a ser leído y utilizado con el fin de matar el proceso. Como
una solución para este caso, un especial pidproxy El programa puede manejar el inicio de este tipo.
de procesos. los pidproxy programa es una pequeña cuña que inicia un proceso, y sobre el
recepción de una señal, envía la señal al pid proporcionado en un archivo pid. Una muestra
La entrada del programa de configuración para un programa habilitado para pidproxy se proporciona a continuación.

[programa: mysql]
comando = / ruta / a / pidproxy / ruta / a / pidfile / ruta / a / mysqld_safe

El pidproxy programa se pone en su configuración $ BINDIR cuando el supervisor está instalado
(es un "script de consola").

Subproceso Entorno
Los subprocesos heredarán el entorno del shell utilizado para iniciar el supervisor
programa. Varias variables de entorno serán establecidas por supervisor sí mismo en el niño
medio ambiente también, incluyendo SUPERVISOR_HABILITADO (una bandera que indica que el proceso está bajo
control del supervisor), SUPERVISOR_PROCESO_NOMBRE (el nombre de proceso especificado por el archivo de configuración para
este proceso) y SUPERVISOR_GROUP_NOMBRE (el nombre del grupo de procesos especificado por el archivo de configuración para
el proceso hijo).

Estas variables de entorno pueden anularse dentro de la [supervisor] configuración de la sección
opción nombrada entorno (se aplica a todos los subprocesos) o dentro del per- [programa: x]
. entorno opción config (se aplica solo al subproceso especificado dentro de la
[programa: x] sección). Estos ajustes de "entorno" son aditivos. En otras palabras, cada
El entorno del subproceso consistirá en:
Las variables de entorno establecidas dentro del shell utilizado para iniciar supervisord ...

... agregado a / anulado por ...

... de la forma más entorno las variables para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. within de la forma más entorno global
opción de configuración ...

... agregado a / anulado por ...

... específico del supervisor entorno las variables
(SUPERVISOR_HABILITADO, SUPERVISOR_PROCESO_NOMBRE, SUPERVISOR_GROUP_NOMBRE) ..

... agregado a / anulado por ...

... de la forma más entorno las variables para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. within de la forma más por proceso
opción de configuración "entorno".

Ningún shell es ejecutado por supervisor cuando ejecuta un subproceso, por lo que las variables de entorno
como USUARIO, TRAYECTORIA, INICIO, SHELL, NOMBRE DE REGISTRO, etc.no cambian de sus valores predeterminados o
de lo contrario reasignado. Esto es particularmente importante de tener en cuenta cuando está ejecutando un
programa de un supervisor ejecutar como root con un usuario = estrofa en la configuración. diferente a
cron, supervisor no intenta adivinar y anular el entorno "fundamental"
variables como USUARIO, TRAYECTORIA, INICIOy NOMBRE DE REGISTRO cuando realiza un setuid al usuario definido
en la pestaña usuario = opción de configuración del programa. Si necesita establecer variables de entorno para un
programa en particular que de otro modo podría establecerse mediante una invocación de shell para un
usuario, debe hacerlo explícitamente dentro del medio ambiente = opción de configuración del programa. Un ejemplo
de configurar estas variables de entorno es el siguiente.

[programa: apache2]
comando = / home / chrism / bin / httpd -c "ErrorLog / dev / stdout" -DFOREGROUND
usuario = crisma
entorno = CASA = "/ casa / crisma", USUARIO = "crisma"

Proceso Estados
Un proceso controlado por el supervisor estará en uno de los estados siguientes en cualquier momento.
Puede ver estos nombres de estado en varios elementos de la interfaz de usuario de los clientes.

DETENIDO (0)
El proceso se detuvo debido a una solicitud de detención o nunca se inició.

COMENZANDO (10)
El proceso está comenzando debido a una solicitud de inicio.

RUNNING (20)
El proceso se está ejecutando.

APÁRTATE (30)
El proceso entró en el COMENZANDO estado, pero posteriormente salió demasiado rápido para pasar a
de la forma más RUNNING estado.

PARADA (40)
El proceso se detiene debido a una solicitud de detención.

SALIDO (100)
El proceso salió del RUNNING estado (esperado o inesperado).

FATAL (200)
El proceso no se pudo iniciar correctamente.

DESCONOCIDO (1000)
El proceso se encuentra en un estado desconocido (supervisor error de programación).

Cada proceso que se ejecuta bajo el supervisor avanza a través de estos estados según lo siguiente
gráfico dirigido.
[imagen: Gráfico de transición del estado del subproceso] [imagen] Transición del estado del subproceso
Gráfico.UNINDENT

Un proceso está en el DETENIDO indicar si se ha detenido administrativamente o si ha
nunca se ha iniciado.

Cuando un proceso de reinicio automático está en el APÁRTATE estado, será automáticamente
reiniciado por supervisor. Cambiará entre COMENZANDO y APÁRTATE dice hasta que
se hace evidente que no se puede iniciar porque el número de reintentos tiene
excedió el máximo, momento en el que pasará al FATAL estado. Cada comienzo
el reintento llevará progresivamente más tiempo.

Cuando un proceso está en el SALIDO estado, se reiniciará automáticamente:

· Nunca si es reinicio automático el parámetro se establece en false.

· Incondicionalmente si es reinicio automático el parámetro se establece en su verdadero.

· Condicionalmente si su reinicio automático el parámetro se establece en inesperado. Si salió con un
código de salida que no coincide con uno de los códigos de salida definidos en el códigos de salida
parámetro de configuración del proceso, se reiniciará.

Un proceso pasa automáticamente de SALIDO a RUNNING como resultado de estar configurado
para reiniciar automáticamente condicional o incondicionalmente. El número de transiciones entre
RUNNING y SALIDO no está limitado de ninguna manera: es posible crear una configuración
que reinicia interminablemente un proceso salido. Esto es una característica, no un error.

Un proceso reiniciado nunca se reiniciará automáticamente si termina en el FATAL
estado (debe reiniciarse manualmente desde este estado).

Un proceso pasa al PARADA Estado a través de una solicitud de suspensión administrativa, y
luego terminar en el DETENIDO estado.

Un proceso que no se puede detener con éxito permanecerá en el PARADA estado para siempre.
Esta situación nunca debe alcanzarse durante las operaciones normales, ya que implica que la
proceso no respondió a una final sigilo señal enviada por el supervisor, que es
"imposible" en UNIX.

Las transiciones de estado que siempre requieren la acción del usuario para invocar son las siguientes:

FATAL -> COMENZANDO

RUNNING -> PARADA

Las transiciones de estado que normalmente, pero no siempre, requieren la acción del usuario para invocar son
estos, con excepciones señaladas:

DETENIDO -> COMENZANDO (excepto en el inicio del supervisor si el proceso está configurado para iniciarse automáticamente)

SALIDO -> COMENZANDO (excepto si el proceso está configurado para reiniciarse automáticamente)

El supervisor gestiona todas las demás transiciones de estado de forma automática.

Inicio de sesión
Una de las principales tareas que supervisor realiza está registrando. supervisor registra una actividad
log detallando lo que está haciendo mientras se ejecuta. También registra stdout y stderr del proceso hijo
salida a otros archivos si está configurado para hacerlo.

Actividad Log
El registro de actividad es el lugar donde supervisor registra mensajes sobre su propia salud, su
cambios de estado del subproceso, cualquier mensaje que resulte de eventos y depuración y
mensajes informativos. La ruta al registro de actividad se configura a través del archivo de registro
parámetro en el [supervisor] sección del archivo de configuración, por defecto en
$ CWD / supervisord.log. El tráfico de registro de actividad de muestra se muestra en el siguiente ejemplo. Algunos
Las líneas se han roto para adaptarse mejor a la pantalla.

Muestra Actividad Log Salida
2007-09-08 14: 43: 22,886 DEBG 127.0.0.1:Medusa (V1.11) comenzó el sábado 8 de septiembre 14:43:22 2007
Nombre de host: kingfish
Puerto: 9001
2007-09-08 14: 43: 22,961 INFO 'supervisor' de la interfaz RPC inicializada
2007-09-08 14: 43: 22,961 CRIT Ejecutando sin ninguna verificación de autenticación HTTP
2007-09-08 14: 43: 22,962 INFO supervisor comenzó con pid 27347
2007-09-08 14: 43: 23,965 INFO generado: 'listener_00' con pid 27349
2007-09-08 14: 43: 23,970 INFO generado: 'eventgen' con pid 27350
2007-09-08 14: 43: 23,990 INFO generado: 'cultivador' con pid 27351
2007-09-08 14: 43: 24,059 DEBG 'listener_00' salida stderr:
/ Users / chrism / projects / supervisor / supervisor2 / dev-sandbox / bin / python:
no se puede abrir el archivo '/Users/chrism/projects/supervisor/supervisor2/src/supervisor/scripts/osx_eventgen_listener.py':
[Errno 2] No existe tal archivo o directorio
2007-09-08 14: 43: 24,060 DEBG fd 7 cerrado, monitoreo detenido
(salida estándar)>
2007-09-08 14: 43: 24,060 INFO salido: listener_00 (estado de salida 2; no esperado)
2007-09-08 14: 43: 24,061 DEBG recibió SIGCHLD que indica que un niño dejó de fumar

El "nivel" del registro de actividad se configura en el archivo de configuración a través del nivel de registro parámetro en
de la forma más [supervisor] sección de archivo ini. Cuando nivel de registro está configurado, mensajes de la especificada
prioridad, además de aquellos con mayor prioridad se registran en el registro de actividad. Para
ejemplo, si nivel de registro is error, mensajes de error y crítico se registrará la prioridad.
Sin embargo, si loglevel es advertir, mensajes de advertir, errory crítico se registrará.

Actividad Log Niveles
La siguiente tabla describe los niveles de registro con más detalle, ordenados según la prioridad más alta.
al más bajo. El "Valor del archivo de configuración" es la cadena proporcionada al nivel de registro parámetro en
de la forma más [supervisor] sección del archivo de configuración y el "Código de salida" es el código que
aparece en las líneas de salida del registro de actividad.

┌─────────────────┬─────────────┬───────────────── ──────────┐
│Configurar valor de archivo │ Código de salida │ Descripción │
├─────────────────┼─────────────┼───────────────── ──────────┤
│crítico │ CRIT │ Mensajes que indican un │
│ │ │ condición que requiere │
│ │ │ usuario inmediato │
│ │ │ atención, un supervisor │
│ │ │ cambio de estado, o un │
│ │ │ error en supervisor │
│ │ │ en sí. │
├─────────────────┼─────────────┼───────────────── ──────────┤
│error │ ERRO │ Mensajes que indican un │
│ │ │ potencialmente ignorable │
│ │ │ condición de error (por ejemplo, │
│ │ │ incapaz de borrar un registro │
Directorio │ │ │). │
├─────────────────┼─────────────┼───────────────── ──────────┤
│advertir │ ADVERTENCIA │ Mensajes que indican │
│ │ │ una condición anómala │
│ │ │ que no es un error. │
├─────────────────┼─────────────┼───────────────── ──────────┤
│info │ INFO │ Informativo normal │
Salida │ │ │. Este es el │
│ │ │ nivel de registro predeterminado si │
│ │ │ ninguno es explícitamente │
│ │ │ configurado. │
├─────────────────┼─────────────┼───────────────── ──────────┤
│debug │ DEBG │ Mensajes útiles para │
│ │ │ usuarios que intentan depurar │
│ │ │ configuración del proceso │
│ │ │ y comunicaciones │
│ │ │ comportamiento (proceso │
│ │ │ salida, estado de escucha │
│ │ │ cambios, evento │
│ │ │ notificaciones). │
├─────────────────┼─────────────┼───────────────── ──────────┤
│trace │ TRAC │ Mensajes útiles para │
│ │ │ desarrolladores que intentan │
│ │ │ supervisor de depuración │
│ │ │ complementos e información │
│ │ │ sobre HTTP y RPC │
│ │ │ solicitudes y respuestas. │
├─────────────────┼─────────────┼───────────────── ──────────┤
│blather │ BLAT │ Mensajes útiles para │
│ │ │ desarrolladores que intentan │
│ │ │ supervisor de depuración en sí. │
└─────────────────┴─────────────┴───────────────── ──────────┘

Actividad Log Rotación
El registro de actividad es "rotado" por supervisor basado en la combinación del
archivo de registro_maxbytes y la logfile_backups parámetros en el [supervisor] sección de la
archivo de configuración. Cuando el registro de actividad llega archivo de registro_maxbytes bytes, el registro actual
El archivo se mueve a un archivo de respaldo y se crea un nuevo archivo de registro de actividades. Cuando esto pasa,
si el número de archivos de respaldo existentes es mayor o igual a logfile_backups, el
Se elimina el archivo de copia de seguridad más antiguo y se cambia el nombre de los archivos de copia de seguridad en consecuencia. Si el archivo
al que se le escribe se le llama supervisord.log, cuando excede archivo de registro_maxbytes, está cerrado
y renombrado a supervisord.log.1y si archivos supervisord.log.1, supervisord.log.2 etc.
existen, luego se les cambia el nombre a supervisord.log.2, supervisord.log.3 etc. respectivamente.
If archivo de registro_maxbytes es 0, el archivo de registro nunca se rota (y, por lo tanto, nunca se realizan copias de seguridad).
If logfile_backups es 0, no se guardarán copias de seguridad.

Niño Proceso Logs
La salida estándar de los procesos secundarios generados por el supervisor, de forma predeterminada, se captura para volver a mostrarla
a los usuarios de supervisorctl y otros clientes. Si no hay una configuración específica relacionada con el archivo de registro
se realiza en un [programa: x], [programa-fcgi: x]o [escuchador de eventos: x] sección en el
archivo de configuración, lo siguiente es cierto:

· supervisor capturará la salida stdout y stderr del proceso hijo en temporal
archivos. Cada secuencia se captura en un archivo separado. Esto se conoce como AUTO modo de registro.

· AUTO Los archivos de registro se nombran automáticamente y se colocan en el directorio configurado como
childlogdir de las [supervisor] sección del archivo de configuración.

· El tamaño de cada uno AUTO El archivo de registro está delimitado por el {streamname} _logfile_maxbytes valor de
la sección del programa (donde {streamname} es "stdout" o "stderr"). Cuando llega a eso
número, se rota (como el registro de actividad), según el
{streamname} _logfile_backups.

Las claves de configuración que influyen en el inicio de sesión del proceso hijo [programa: x] y
[programa-fcgi: x] las secciones son estas:

redirigir_stderr, stdout_archivo de registro, stdout_logfile_maxbytes, stdout_logfile_copias de seguridad,
stdout_capture_maxbytes, stderr_archivo de registro, stderr_logfile_maxbytes, stderr_logfile_copias de seguridad
y stderr_capture_maxbytes.

Uno puede establecer stdout_archivo de registro or stderr_archivo de registro a la cadena especial "syslog". En este caso,
Los registros se enrutarán al servicio syslog en lugar de guardarse en archivos.

[escuchador de eventos: x] las secciones pueden no especificar redirigir_stderr, stdout_capture_maxbyteso
stderr_capture_maxbytes, pero por lo demás aceptan los mismos valores.

Las claves de configuración que influyen en el registro del proceso hijo en el [supervisor] config
sección de archivo son estos: childlogdiry no limpiar.

Capturar Moda
El modo de captura es una función avanzada de Supervisor. No necesitas entender el modo de captura
a menos que desee realizar acciones basadas en datos analizados de la salida del subproceso.

Si [programa: x] sección en el archivo de configuración define un valor distinto de cero
stdout_capture_maxbytes or stderr_capture_maxbytes parámetro, cada proceso representado por
la sección del programa puede emitir tokens especiales en su stdout o stderr stream (respectivamente)
lo que efectivamente hará que el supervisor emita un PROCESO_COMUNICACIÓN evento (ver eventos
para una descripción de los eventos).

El protocolo de comunicaciones de proceso se basa en dos etiquetas, una que ordena al supervisor
ingrese "modo de captura" para la secuencia y uno que le ordena salir. Cuando un proceso
la transmisión entra en "modo de captura", los datos enviados a la transmisión se enviarán a un búfer separado en
memoria, el "búfer de captura", que puede contener un máximo de capturar_maxbytes
bytes. Durante el modo de captura, cuando la longitud del búfer excede capturar_maxbytes bytes, el
Los primeros datos del búfer se descartan para dejar espacio para nuevos datos. Cuando un flujo de proceso
sale del modo de captura, un PROCESO_COMUNICACIÓN el subtipo de evento lo emite el supervisor, que
puede ser interceptado por los oyentes de eventos.

La etiqueta para comenzar el "modo de captura" en un flujo de proceso es . La etiqueta
para salir del modo de captura es . Los datos entre estas etiquetas pueden ser
arbitrario, y forma la carga útil de la PROCESO_COMUNICACIÓN evento. Por ejemplo, si un
El programa está configurado con un stdout_capture_maxbytes de "1 MB", y emite lo siguiente en
su corriente stdout:

¡Hola!

En esta circunstancia, supervisor emitirá un PROCESO_COMMUNICACIONES_STDOUT evento con
datos en la carga útil de "¡Hola!".

Un ejemplo de un script (escrito en Python) que emite un evento de comunicación de proceso está en
de la forma más guiones directorio del paquete supervisor, llamado muestra_commevent.py.

La salida de los procesos especificados como "detectores de eventos" ([escuchador de eventos: x] secciones) no es
procesado de esta manera. La salida de estos procesos no puede ingresar al modo de captura.

Extensión Del supervisor XML-RPC API
Supervisor se puede ampliar con nuevas API XML-RPC. Varios complementos de terceros ya
existen que se pueden conectar a la configuración de su supervisor. También puede escribir
tu propio. Las interfaces extensibles XML-RPC son una característica avanzada, introducida en la versión
3.0. No es necesario que lo comprenda a menos que desee utilizar un RPC de terceros existente.
complemento de interfaz o si desea escribir su propio complemento de interfaz RPC.

Configurando XML-RPC Fácil de usar Fábricas
Una interfaz RPC adicional se configura en una instalación de supervisor agregando un
[rpcinterface: x] sección en el archivo de configuración del supervisor.

En el archivo de configuración de muestra, hay una sección que se llama [rpcinterface: supervisor].
Por defecto tiene este aspecto:

[rpcinterface: supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface: make_main_rpcinterface

En esta sección deben permanecer en la configuración para que funcione la configuración estándar del supervisor
adecuadamente. Si no quiere que el supervisor haga nada que no haga ya fuera del
box, esto es todo lo que necesita saber sobre este tipo de sección.

Sin embargo, si desea agregar espacios de nombres de interfaz XML-RPC adicionales a una configuración de
supervisor, puede agregar más [rpcinterface: foo] secciones, donde "foo" representa el
espacio de nombres de la interfaz (desde la raíz web), y el valor nombrado por
supervisor.rpcinterface_factory es una fábrica invocable escrita en Python que debería tener
una firma de función que acepta un solo argumento posicional supervisor y tantos
argumentos de palabras clave según sea necesario para realizar la configuración. Cualquier par clave / valor definido
en la pestaña rpcinterface: foo La sección se pasará como argumentos de palabra clave a la fábrica.
Aquí hay un ejemplo de una función de fábrica, creada en el paquete mi paquete.

def make_another_rpcinterface (supervisor, ** config):
reintentos = int (config.get ('reintentos', 0))
another_rpc_interface = AnotherRPCInterface (supervisor, reintentos)
devolver otra_rpc_interface

Y una sección en el archivo de configuración destinada a configurarlo.

[rpcinterface: otro]
supervisor.rpcinterface_factory = my.package: make_another_rpcinterface
reintentos = 1

Glosario
Daemon Tools
A control te by DJ Bernstein.

lanzamiento
A control te usado by Apple como proceso 1 en Mac OS X.

ejecutarlo A control te.

superlanza
Un paquete que proporciona varias implementaciones de escucha de eventos que se conectan a
Supervisor que puede ayudar a monitorear el uso de la memoria del proceso y el estado de fallas:
http://pypi.python.org/pypi/superlance.

umask Abreviación de usuario máscara: establece la máscara de creación del modo de archivo del proceso actual.
See http://en.wikipedia.org/wiki/Umask.

API DOCUMENTACIÓN


XML-RPC API Documentación
Para utilizar la interfaz XML-RPC, conéctese al puerto HTTP del supervisor con cualquier cliente XML-RPC
biblioteca y ejecutar comandos en su contra. Un ejemplo de cómo hacer esto usando Python xmlrpclib
la biblioteca cliente es la siguiente.

importar xmlrpclib
servidor = xmlrpclib.Server ('http://localhost: 9001 / RPC2 ')

Puede llamar a métodos contra supervisor y sus subprocesos utilizando el supervisor
espacio de nombres. A continuación se proporciona un ejemplo.

server.supervisor.getState ()

Puede obtener una lista de los métodos admitidos por el supervisor Interfaz XML-RPC mediante el
XML-RPC system.listMétodos API:

server.system.listMethods ()

Puede ver ayuda sobre un método utilizando el system.methodAyuda API contra el método:

server.system.methodHelp ('supervisor.shutdown')

El supervisor La interfaz XML-RPC también admite la XML-RPC multillamada API.

Puedes extender supervisor funcionalidad con nuevos métodos de API XML-RPC agregando nuevos
interfaces RPC de nivel superior según sea necesario. Consulte rpcinterface_factories.

NOTA:
Cualquier llamada al método XML-RPC puede dar como resultado una respuesta de error. Esto incluye errores causados ​​por
el cliente, como malos argumentos y cualquier error que haga supervisor incapaz
Cumplir con la solicitud. Muchos programas cliente XML-RPC generarán una excepción cuando se produzca un error.
se encuentra la respuesta.

Estado y Control
clase supervisor.rpcinterface.SupervisorNamespaceRPCInterface (supervisor)

getAPIVersion ()
Devuelve la versión de la API de RPC utilizada por supervisord

@return string versión id de versión

Esta API tiene una versión separada del propio Supervisor. La versión de la API
devuelto por getAPIVersion solo cambia cuando cambia la API. Su propósito
es ayudar al cliente a identificar con qué versión de la API de supervisor
se está comunicando.

Al escribir software que se comunica con esta API, es muy
recomendó que primero pruebe la versión de la API para verificar la compatibilidad antes
realizar llamadas a métodos.

NOTA:
El getAPIVersion método reemplaza obtener versión encontrado en Supervisor
versiones anteriores a 3.0a1. Tiene un alias por compatibilidad, pero
getVersion () está obsoleto y el soporte se eliminará de
Supervisor en una versión futura.

getSupervisorVersion ()
Devolver la versión del paquete de supervisor en uso por supervisor

@return string versión id de versión

getIdentification ()
Devuelve la cadena de identificación del supervisor

@return identificador de cadena cadena de identificación

Este método permite al cliente identificar con qué instancia de Supervisor
se está comunicando en el caso de entornos donde múltiples
Es posible que los supervisores se estén ejecutando.

La identificación es una cadena que debe establecerse en el
archivo de configuración. Este método simplemente devuelve ese valor a la
cliente.

getState ()
Devuelve el estado actual del supervisor como una estructura

@return struct Una estructura con claves int statecode, string statename

Este es un valor interno mantenido por el Supervisor que determina qué
El supervisor cree que es su estado operativo actual.

Algunas llamadas a métodos pueden alterar el estado actual del supervisor. Para
ejemplo, llamando al método supervisor.shutdown () mientras la estación está en
el estado EJECUTANDO coloca al Supervisor en el estado APAGADO mientras está
Apagando.

El método supervisor.getState () proporciona un medio para que el cliente verifique
Estado del supervisor, tanto con fines informativos como para garantizar que
se permitirán los métodos que pretende llamar.

El valor de retorno es una estructura:

{'statecode': 1,
'statename': 'EJECUTANDO'}

Los posibles valores de retorno son:

┌──────────┬────────────┬───────────────────────── ─┐
│ código de estado │ nombre de estado │ Descripción │
├──────────┼────────────┼───────────────────────── ─┤
│2 │ FATAL │ El supervisor tiene │
│ │ │ experimentó una grave │
Error de │ │ │. │
├──────────┼────────────┼───────────────────────── ─┤
│1 │ EN EJECUCIÓN │ El supervisor está trabajando │
│ │ │ normalmente. │
├──────────┼────────────┼───────────────────────── ─┤
│0 │ REINICIANDO │ El supervisor está en el │
│ │ │ proceso de reinicio. │
├──────────┼────────────┼───────────────────────── ─┤
│-1 │ APAGADO │ El supervisor está en el │
│ │ │ proceso de cierre │
│ │ │ abajo. │
└──────────┴────────────┴───────────────────────── ─┘

El FATAL el estado informa errores irrecuperables, como errores internos
Supervisor interior o condiciones de fuga del sistema. Una vez configurado en FATAL, el
El supervisor nunca puede regresar a ningún otro estado sin reiniciarse.

En Los FATAL estado, todos los métodos futuros excepto supervisor.shutdown () y
supervisor.restart () fallará automáticamente sin ser llamado y el
culpa ESTADO_FATAL será criado

En Los Cierre or REINICIANDO estados, todas las llamadas a métodos se ignoran y
sus posibles valores de retorno no están definidos.

getPID ()
Devuelve el PID del supervisor

@return int PID

readLog (desplazamiento, largo)
Leer longitud de bytes del registro principal comenzando en el desplazamiento

@param int offset offset desde el que empezar a leer. @param int
longitud número de bytes para leer del registro. @return string
resultado Bytes de registro

Puede devolver el registro completo, varios caracteres de la cola.
del registro, o una porción del registro especificado por el desplazamiento y la longitud
parámetros:

┌────────────────┬──────────┬──────────────────── ──────┐
│ Desplazamiento │ Longitud │ Comportamiento de │
│ │ │ leerProcesoRegistro
├────────────────┼──────────┼──────────────────── ──────┤
│Negativo │ No cero │ Malos argumentos. Esto será │
│ │ │ plantear la falla │
│ │ │ MALOS_ARGUMENTOS. │
└────────────────┴──────────┴──────────────────── ──────┘

│Negativo │ Cero │ Esto devolverá el │
│ │ │ cola del tronco, o │
│ │ │ número de compensación de │
│ │ │ personajes del final │
│ │ │ del registro. Para │
│ │ │ ejemplo, si compensar = -4│
│ │ │ y de largo = 0, entonces │
│ │ │ últimos cuatro caracteres │
│ │ │ se devolverá de │
│ │ │ al final del registro. │
├────────────────┼──────────┼──────────────────── ──────┤
│Cero o Positivo │ Negativo │ Malos argumentos. Esto será │
│ │ │ plantear la falla │
│ │ │ MALOS_ARGUMENTOS. │
├────────────────┼──────────┼──────────────────── ──────┤
│Cero o Positivo │ Cero │ Todos los caracteres serán │
│ │ │ regresó del compensar
│ │ │ especificado. │
├────────────────┼──────────┼──────────────────── ──────┤
│Cero o Positivo │ Positivo │ Varios caracteres │
│ │ │ se devolverá la longitud │
│ │ │ del compensar. │
└────────────────┴──────────┴──────────────────── ──────┘

Si el registro está vacío y se solicita el registro completo, se muestra una cadena vacía.
devuelto.

Si el desplazamiento o la longitud están fuera de rango, la falla MALOS_ARGUMENTOS will
ser devuelto.

Si no se puede leer el registro, este método generará el NINGÚN ARCHIVO
error si el archivo no existe o el FALLADO error si hay algún otro problema
se encontró.

NOTA:
El método readLog () reemplaza readMainLog () que se encuentra en Supervisor
versiones anteriores a 2.1. Tiene un alias por compatibilidad, pero
readMainLog () está en desuso y el soporte se eliminará de
Supervisor en una versión futura.

borrar registro()
Limpia el registro principal.

@return boolean result siempre devuelve True a menos que haya error

Si el registro no se puede borrar porque el archivo de registro no existe, el
culpa NINGÚN ARCHIVO se levantará. Si el registro no se puede borrar para ningún otro
la razón, la culpa FALLADO será criado

apagar()
Cerrar el proceso de supervisor

@return boolean result siempre devuelve True a menos que haya error

Este método cierra el demonio Supervisor. Si algún proceso es
corriendo, se matan automáticamente sin previo aviso.

A diferencia de la mayoría de los otros métodos, si Supervisor está en el FATAL estado, esto
El método seguirá funcionando.

Reanudar()
Reinicie el proceso de supervisor

@return El resultado booleano siempre devuelve Verdadero a menos que haya error

Este método reinicia suavemente el demonio Supervisor. Si algún proceso es
corriendo, se matan automáticamente sin previo aviso. Tenga en cuenta que el
el proceso de UNIX real para Supervisor no se puede reiniciar; solo principal del supervisor
bucle de programa. Esto tiene el efecto de restablecer los estados internos de
Supervisor.

A diferencia de la mayoría de los otros métodos, si Supervisor está en el FATAL estado, esto
El método seguirá funcionando.

Proceso Control
clase supervisor.rpcinterface.SupervisorNamespaceRPCInterface (supervisor)

getProcessInfo (nombre)
Obtener información sobre un proceso llamado nombre

@param string name El nombre del proceso (o 'grupo: nombre') @return
struct result Una estructura que contiene datos sobre el proceso.

El valor de retorno es una estructura:

{'nombre': 'nombre del proceso',
'grupo': 'nombre del grupo',
'descripción': 'pid 18806, tiempo de actividad 0:03:12'
'inicio': 1200361776,
'detener': 0,
'ahora': 1200361812,
'estado': 1,
'statename': 'EJECUTANDO',
'spawnerr': '',
'exitstatus': 0,
'logfile': '/ ruta / a / stdout-log', # obsoleto, solo b / c
'stdout_logfile': '/ ruta / a / stdout-log',
'stderr_logfile': '/ ruta / a / stderr-log',
'pid': 1}

nombre Nombre del proceso

grupo de XNUMX Nombre del grupo del proceso

descripción
Si el estado del proceso se está ejecutando, el valor de la descripción es process_id y
tiempo de actividad. Ejemplo "pid 18806, tiempo de actividad 0:03:12". Si el estado del proceso es
el valor de la descripción detenida es el tiempo de parada. Ejemplo: "5 de junio a las 03:16 p.m.
".

comienzo Marca de tiempo UNIX de cuando se inició el proceso

detener Marca de tiempo UNIX de cuándo finalizó el proceso por última vez, o 0 si el proceso
nunca se ha detenido.

ahora Marca de tiempo UNIX de la hora actual, que se puede utilizar para calcular
tiempo de actividad del proceso.

estado Código de estado, consulte process_states.

nombre del Estado
Descripción de cadena de estado, consulte process_states.

archivo de registro
Alias ​​obsoleto para stdout_archivo de registro. Esto se proporciona solo para
compatibilidad con clientes escritos para Supervisor 2.xy puede ser
eliminado en el futuro. Usar stdout_archivo de registro preferiblemente.

stdout_archivo de registro
Ruta absoluta y nombre de archivo al archivo de registro STDOUT

stderr_archivo de registro
Ruta absoluta y nombre de archivo al archivo de registro STDOUT

engendrar
Descripción del error que ocurrió durante la generación o cadena vacía
si ninguno.

estado de salida
Estado de salida (nivel de error) del proceso, o 0 si el proceso aún está
funcionando.

pid ID de proceso UNIX (PID) del proceso, o 0 si el proceso no es
funcionando.

getAllProcessInfo ()
Obtenga información sobre todos los procesos

@return array result Una matriz de resultados de estado del proceso

Cada elemento contiene una estructura, y esta estructura contiene exactamente la misma
elementos como la estructura devuelta por obtener información del proceso. Si la tabla de proceso
está vacío, se devuelve una matriz vacía.

startProcess (nombre, esperar = Verdadero)
Iniciar un proceso

@param nombre de cadena Nombre del proceso (o Nombre del grupoo grupo:*) @param
espera booleana Espere a que el proceso se inicie por completo @return resultado booleano
Siempre cierto a menos que haya error

startAllProcesses (esperar = Verdadero)
Inicie todos los procesos enumerados en el archivo de configuración

@param boolean wait Espere a que cada proceso se inicie por completo @return
resultado de matriz Una matriz de estructuras de información de estado del proceso

startProcessGroup (nombre, esperar = Verdadero)
Inicie todos los procesos en el grupo llamado 'nombre'

@param string name El nombre del grupo @param boolean wait Esperar
cada proceso se iniciará completamente @return array result Una matriz de
estructuras de información de estado del proceso

stopProcess (nombre, esperar = Verdadero)
Detener un proceso nombrado por su nombre

@param string name El nombre del proceso a detener (o 'grupo: nombre')
@param boolean wait Espere a que el proceso se detenga por completo
@return boolean result Siempre devuelve True a menos que haya error

stopProcessGroup (nombre, esperar = Verdadero)
Detenga todos los procesos en el grupo de procesos denominado 'nombre'

@param string name El nombre del grupo @param boolean wait Esperar
cada proceso se detenga por completo @return array result Una matriz de
estructuras de información de estado del proceso

stopAllProcesses (esperar = Verdadero)
Detenga todos los procesos en la lista de procesos

@param boolean wait Espere a que cada proceso se detenga por completo @return
resultado de matriz Una matriz de estructuras de información de estado del proceso

sendProcessStdin (nombre, caracteres)
Envíe una cadena de caracteres al stdin del nombre del proceso. Si no es de 7 bits
se envían datos (unicode), se codifican en utf-8 antes de enviarse a la
proceso 'stdin. Si chars no es una cadena o no es unicode, suba
INCORRECT_PARAMETERS. Si el proceso no se está ejecutando, active NOT_RUNNING.
Si el proceso 'stdin no puede aceptar la entrada (por ejemplo, fue cerrado por el
proceso hijo), genere NO_FILE.

@param string name El nombre del proceso al que enviar (o 'grupo: nombre')
@param string chars Los datos de caracteres para enviar al proceso
@return boolean result Siempre devuelve True a menos que haya error

sendRemoteCommEvent (tipo, datos)
Enviar un evento que será recibido por los subprocesos de escucha de eventos.
suscribirse al RemoteCommunicationEvent.

@param string type Cadena para la clave "tipo" en el encabezado del evento
@param string data Datos para el cuerpo del evento @return boolean
Siempre devuelve True a menos que haya error

reloadConfig ()
Recargar configuración

@return El resultado booleano siempre devuelve Verdadero a menos que haya error

addProcessGroup (nombre)
Actualice la configuración para un proceso en ejecución desde el archivo de configuración.

@param nombre de cadena nombre del grupo de procesos para agregar @return booleano
resultado verdadero si tiene éxito

removeProcessGroup (nombre)
Elimina un proceso detenido de la configuración activa.

@param nombre de cadena nombre del grupo de procesos para eliminar @return
resultado booleano Indica si la eliminación se realizó correctamente

Proceso Inicio de sesión
clase supervisor.rpcinterface.SupervisorNamespaceRPCInterface (supervisor)

readProcessStdoutLog (nombre, compensar, largo)
Lea los bytes de longitud del registro de salida estándar del nombre comenzando en el desplazamiento

@param string name el nombre del proceso (o 'grupo: nombre')
@param int offset offset desde el que empezar a leer. @param int
longitud número de bytes para leer del registro. @return string
resultado Bytes de registro

readProcessStderrLog (nombre, compensar, largo)
Lea los bytes de longitud del registro stderr del nombre comenzando en el desplazamiento

@param string name el nombre del proceso (o 'grupo: nombre')
@param int offset offset desde el que empezar a leer. @param int
longitud número de bytes para leer del registro. @return string
resultado Bytes de registro

tailProcessStdoutLog (nombre, compensar, largo)
Proporciona una forma más eficiente de seguir el registro (stdout) que
readProcessStdoutLog (). Utilice readProcessStdoutLog () para leer fragmentos y
tailProcessStdoutLog () a tail.

Solicita (longitud) bytes del registro de (nombre), comenzando en (desplazamiento). Si
el tamaño total del registro es mayor que (desplazamiento + longitud), la bandera de desbordamiento
se establece y el (desplazamiento) se incrementa automáticamente para posicionar el búfer
al final del registro. Si hay menos de (longitud) bytes disponibles, el
se devolverá el número máximo de bytes disponibles. (compensación) devuelto es
siempre el último desplazamiento en el registro +1.

@param string name el nombre del proceso (o 'grupo: nombre')
@param int offset offset para comenzar a leer desde @param int length
número máximo de bytes para devolver @return array result [string
bytes, desplazamiento int, desbordamiento bool]

tailProcessStderrLog (nombre, compensar, largo)
Proporciona una forma más eficiente de seguir el registro (stderr) que
readProcessStderrLog (). Utilice readProcessStderrLog () para leer fragmentos y
tailProcessStderrLog () a tail.

Solicita (longitud) bytes del registro de (nombre), comenzando en (desplazamiento). Si
el tamaño total del registro es mayor que (desplazamiento + longitud), la bandera de desbordamiento
se establece y el (desplazamiento) se incrementa automáticamente para posicionar el búfer
al final del registro. Si hay menos de (longitud) bytes disponibles, el
se devolverá el número máximo de bytes disponibles. (compensación) devuelto es
siempre el último desplazamiento en el registro +1.

@param string name el nombre del proceso (o 'grupo: nombre')
@param int offset offset para comenzar a leer desde @param int length
número máximo de bytes para devolver @return array result [string
bytes, desplazamiento int, desbordamiento bool]

clearProcessLogs (nombre)
Borre los registros stdout y stderr del proceso nombrado y vuelva a abrirlos.

@param string name El nombre del proceso (o 'grupo: nombre') @return
resultado booleano Siempre verdadero a menos que haya error

clearAllProcessLogs ()
Borrar todos los archivos de registro del proceso

@return array result Una matriz de estructuras de información de estado del proceso

System Métodos
clase supervisor.xmlrpc.SystemNamespaceRPCInterface (espacios de nombres)

listMethods ()
Devuelve una matriz que enumera los nombres de métodos disponibles

@return array result Una matriz de nombres de métodos disponibles (cadenas).

métodoAyuda (nombre)
Devuelve una cadena que muestra la documentación del método.

@param string name El nombre del método. @return string result El
documentación para el nombre del método.

methodSignature (nombre)
Devuelve una matriz que describe la firma del método en la forma [rtype,
ptype, ptype ...] donde rtype es el tipo de datos de retorno del método, y
ptypes son los tipos de datos de parámetros que el método acepta en el método
orden de los argumentos.

@param string name El nombre del método. @return resultado de la matriz El
resultado.

multicall (llamadas)
Procese una serie de llamadas y devuelva una serie de resultados. Las llamadas deben
ser estructuras de la forma {'methodName': string, 'params': array}. Cada
El resultado será una matriz de un solo elemento que contiene el valor del resultado, o una
estructura de la forma {'código de error': int, 'cadena de error': cadena}. Este es
útil cuando necesita hacer muchas llamadas pequeñas sin mucha ronda
excursiones.

@param array llama Una matriz de solicitudes de llamada @return array result An
variedad de resultados

PLUGINS


ÍNDICES Y TABLAS


· Genindex

· Modindex

· buscar

Utilice el supervisor en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    Impulsar las bibliotecas de C ++
    Impulsar las bibliotecas de C ++
    Boost ofrece portátiles gratuitos
    Bibliotecas de C++ revisadas por pares. Él
    El énfasis está en las bibliotecas portátiles que
    funciona bien con la biblioteca estándar de C++.
    Ver http://www.bo...
    Descargar bibliotecas Boost C++
  • 2
    VirtualGL
    VirtualGL
    VirtualGL redirige los comandos 3D de un
    Aplicación Unix / Linux OpenGL en un
    GPU del lado del servidor y convierte la
    renderiza imágenes en 3D en una secuencia de video
    con la cual ...
    Descargar VirtualGL
  • 3
    libusb
    libusb
    Biblioteca para habilitar el espacio de usuario
    programas de aplicación para comunicarse
    Dispositivos USB. Público: Desarrolladores, Fin
    Usuarios/Escritorio. lenguaje de programacion: c
    Categorías ...
    Descargar libusb
  • 4
    TRAGO
    TRAGO
    SWIG es una herramienta de desarrollo de software
    que conecta programas escritos en C y
    C ++ con una variedad de alto nivel
    lenguajes de programación. SWIG se utiliza con
    diferente...
    Descargar SWIG
  • 5
    WooCommerce Nextjs reaccionar tema
    WooCommerce Nextjs reaccionar tema
    Tema React WooCommerce, creado con
    Siguiente JS, Webpack, Babel, Node y
    Express, usando GraphQL y Apollo
    Cliente. Tienda WooCommerce en React(
    contiene: Productos...
    Descargar el tema WooCommerce Nextjs React
  • 6
    archlabs_repo
    archlabs_repo
    Paquete de repositorio para ArchLabs Este es un
    aplicación que también se puede buscar
    obtenidos de
    https://sourceforge.net/projects/archlabs-repo/.
    Ha sido alojado en OnWorks en...
    Descargar archlabs_repo
  • Más "

Comandos de Linux

Ad