Estoy buscando un administrador de procesos que pueda controlarse desde CLI (agregar, iniciar, detener, eliminar), para poder controlarlo mediante programación.
He intentado usarhttps://github.com/circus-tent/circus, pero el problema es que cuando lo agrego desde CLI, los procesos desaparecen después de reiniciar el servidor. Abrí un problema allí;https://github.com/circus-tent/circus/issues/937. No probé Supervisord todavía, pero parece que tiene el mismo problema.https://github.com/mnaberez/supervisor_twiddler/issues/4.
¿Existe algún administrador de procesos que pueda agregar un proceso demonio desde la CLI y los cambios persistan después del reinicio, sin tocar el archivo de configuración? Gracias.
Estoy en Centos 7, quiero demonizar un script PHP CLI para cada usuario registrado.
Lo siento, no estoy seguro de cómo puedo explicar esto mejor. Tengo un script PHP CLI que tiene un bucle infinito. El script se está ejecutando para escuchar el nuevo mensaje entrante. El script debe iniciarse con un nuevo usuario registrado, por ejemplo php listen.php --user_id=111
, y detenerse al eliminarlo.
Respuesta1
El paquete que recomiendo para esto lo llama daemontools
Dan Bernstein.
Se trata de una colección de herramientas para proporcionar supervisión de servicios en todo el sistema y gestionar servicios. No sólo se preocupa por iniciar y detener los servicios, sino que también supervisa los demonios de servicio mientras se ejecutan. Entre otras cosas, proporciona una interfaz confiable para enviar señales a demonios de servicio sin la necesidad de archivos pid y una función de registro con rotación automática de archivos de registro y límites de espacio en disco.
Satisface todos sus requisitos. Es ultraconfiable; una vez que lo configuras y entiendes cómo usarlo, requiere muy poco mantenimiento. Si hay un problema en su sistema, no será daemontools.
- Todo el control se realiza a través de la línea de comando.
- Los demonios se reiniciarán al reiniciar el sistema.
- Los demonios se pueden detener, iniciar, detener y suspender desde la CLI.
- Además, también maneja el registro de cada demonio.
- Gestiona reinicios rápidos (cuando un programa muere rápidamente).
Este paquete y el diseño subyacente son sólidos como una roca. El código fuente no ha cambiado en años, pero no dejes que esto te engañe. No ha sido necesario cambiarlo porque es correcto.
Personalmente he usado este paquete para controlar de manera confiable cientos de procesos demonio en una máquina a la vez.
La configuración de un nuevo cliente es fácil, simplemente coloque un archivo de control en el directorio especificado y se iniciará y reiniciará automáticamente para siempre, a menos que usted intervenga. Una vez que sepa cómo debería verse el archivo, cree una plantilla o una forma de parametrizar la creación del archivo de control.
Creo que lo mejor que puedes hacer es obtener el paquete fuente RPM de kteru en github y crear tu propio RPM a partir de él. Es fácil de construir, pero RPM facilitará la administración y replicación de su sistema.
La página de inicio y la documentación se encuentran enhttp://cr.yp.to/daemontools.html
El paquete fuente CentOS 4-7 RPM está disponible en github: https://github.com/kteru/daemontools-rpm
También hay un paquete llamado runit
que creo que es una rama de daemontools
sin algunas de las restricciones de licencia y distribución daemontools
y con una política de diseño de directorio más flexible. Está en los repositorios de Debian, de CentOS no sé.