Puede probar wdog, que es una utilidad escrita en C++ y vinculada con el marco Kahless_9. El código fuente para esto se puede descargar desde: https://github.com/zepher999/wdog y, en consecuencia, se actualiza para adecuarse a sus necesidades. Todavía hay algunos cambios en la lista TODO requeridos para el futuro, pero como esto debe cumplir con sus requisitos actuales.
La utilidad requiere un archivo csv como entrada en el que se incluyen todos los procesos a ser observados con sus argumentos. Al iniciarse, la utilidad inicia todos estos procesos designados en el archivo csv y los supervisa para la salida/finalización, luego de lo cual reinicia el proceso.
Actualmente, wdog permite la detención/eliminación de procesos supervisados, así como la capacidad de iniciar la utilidad en modo frío o caliente. El modo caliente permite que la utilidad use registros almacenados en caché para monitorear procesos ya iniciados mientras que el modo en frío inicia el descarte de dichos valores almacenados en caché, intentando así iniciar todos los procesos.
La utilidad también tiene la capacidad de iniciar una instancia de sí mismo para monitorearse a sí misma, teniendo así un perro guardián para el perro guardián.
Hasta donde yo sé, eso solo asegura que el sistema no se cuelga y se restablece si es así.No creo que puedas usarlo solo para mantener activa una aplicación de usuario. – Janne
Tengo experiencia con una herramienta en una aplicación Linux embebida que hace justo lo que me pide, desafortunadamente no recuerdo su nombre, de lo contrario, publicaría una respuesta, pero sí sé que funciona más o menos como ha sugerido en cualquier caso, por lo que no es en absoluto una mala idea. Otra opción es usar un puerto específico en la dirección del localhost 27.0.0.1, y enviar procesos a él y a su supervisor de daemon del software./dev/watchdog es para el perro guardián de hardware, tu daemon puede mantener eso, de modo que, en última instancia, si el daemon se detiene, el sistema se reinicia (como último recurso). – Clifford