Si está utilizando un archivo de servicio systemd para iniciar su servicio, agregue las siguientes líneas a su archivo de servicio desde donde está iniciando su servicio:
[Service]
Type=simple
ExecStart=here will be your service executable name
Restart=always
RestartSec=0
-
Restart=
Configura si el servicio se reiniciará cuando el proceso de servicio finalice, se elimine o se alcance un tiempo de espera. Toma uno de los siguientes valores:
no
,on-success
,on-failure
,on-abnormal
,on-watchdog
,on-abort
oalways
. Si se establece enno
(el valor predeterminado). -
RestartSec=
Configura el tiempo de suspensión antes de reiniciar un servicio (como se configura con
Restart=
). Toma un valor sin unidades en segundos.
Estas dos opciones tienen que estar bajo el [Service]
etiqueta en un archivo de servicio.
He usado monit monit para esto. Una publicación en askfedoraproject me sugiere que esta sigue siendo una buena manera de monitorear procesos y reiniciarlos automáticamente.
Proporciona una buena configuración granular de las funciones de monitoreo, cómo decidir si un proceso ha fallado y las acciones que se deben tomar para recuperarlo.