Monitor de proceso fácil pero listo para producción en Linux / Unix [cerrado]

8

Estoy buscando un monitor de proceso simple para mi cuenta en un VPS popular. Me encantaron Supervisor y Monit, pero me parecen excesivos.

quiero algo

  1. que se ejecuta como un demonio (por lo que mi cuenta VPS puede iniciarlo en el arranque y también "iniciar" por cron en caso de que el monitor se caiga)
  2. que monitorea generando cosas como subproceso (como Supervisor) o haciendo un comando de sondeo que devuelve verdadero o falso (como una declaración BASH if)
  3. tanto fácil de usar (necesita una configuración mínima) como estable de producción (de alguna manera, pocos programas parecen satisfacer ambas demandas)
  4. Adecuado en un VPS administrado, ejecutado en modo de usuario, uso mínimo de memoria
Jesvin Jose
fuente

Respuestas:

2

Estás buscando el programa daemontools . (Si esto es lo que quiso decir con el monitor "Supervisor", no dude en ignorar el resto de mi respuesta).

daemontools es una colección de herramientas para administrar servicios UNIX.

supervisar supervisa un servicio. Inicia el servicio y lo reinicia si muere. Configurar un nuevo servicio es fácil: todas las necesidades de supervisión son un directorio con un script de ejecución que ejecuta el servicio.

multilog guarda mensajes de error en uno o más registros. Opcionalmente, marca la hora de cada línea y, para cada registro, incluye o excluye líneas que coinciden con patrones especificados. Rota automáticamente los registros para limitar la cantidad de espacio en disco utilizado. Si el disco se llena, se detiene e intenta nuevamente, sin perder ningún dato.

Es simple, flexible y muy poderoso. La idea básica es que para cada servicio que desea ejecutar, daemontools inicia un proceso secundario (llamado supervise) que luego inicia su servicio. supervise configura las variables de entorno del servicio y uid / gid , y luego mantiene abierto el estándar del servicio y el estándar para que pueda enviar señales. El servicio no necesita demonizarse solo, y no tiene que administrar archivos pid. El servicio principal no requiere root para ejecutarse, y puede colocar los directorios de los servicios monitoreados en cualquier lugar.

Manitas5
fuente
runitSería una alternativa a Daemontools. También es muy simple y de bajo nivel. Básicamente, todo lo que necesita para ejecutar un proceso es un archivo que contenga algún comando exec, por ejemplo, exec sleep 300luego cree un enlace simbólico desde el directorio que contiene ejecutar script /etc/service/namey listo.
Tombart
1

La respuesta simple es que ya tiene uno: todos los sistemas Unix los tienen: init y / etc / inittab.

El trabajo de init es generar los procesos enumerados en inittab, monitorearlos y reiniciarlos si salen.

Haqa
fuente