Actualmente estoy usando supervisor para mantener 100 instancias de un script ejecutándose a la vez. Si alguno muere, entonces comienza uno nuevo.
Sin embargo, parece estar luchando por mantener números más grandes (> 300 procesos) y estoy buscando un reemplazo. Monit no parece hacer lo que quiero, ya que monitorea guiones individuales y no parece poder ver fácilmente 100 instancias del mismo guión.
¿Alguna sugerencia sobre una herramienta diferente que pueda usar?
process
monitoring
jong
fuente
fuente
Respuestas:
Puedes usar:
para obtener el número de procesos secundarios de un script bash (recuerde que esto incluye ps). Entonces, si desea tener 1000 procesos, verifique si eso devuelve 1001. Si no, enciéndalos con:
para que se ejecuten como elementos secundarios del script actual (y, por lo tanto, se incluyan en el recuento). Luego puede dormir un poco y luego volver a comprobarlo en un bucle para siempre. Una cosa a tener en cuenta es que si está generando otros procesos, deberá modificar el
ps
comando para filtrar los procesos que desee.Ese primer comando es la pieza central del rompecabezas, solo debería ser un poco más hasta que tenga su script.
fuente
Yo usaría
pgrep|wc -l
o algo así en un simple script de shell. Espere un segundo (o menos en Linux si lo desea) entre cada verificación consleep
.fuente
Si su secuencia de comandos muere y simplemente volvería al shell, puede usar una secuencia de comandos de envoltura para cada instancia:
o escribes un contenedor que bifurca los scripts y los usa
wait/waitpid
para atrapar procesos muertos.fuente