Se stai utilizzando un file di servizio systemd per avviare il tuo servizio, aggiungi le righe seguenti al tuo file di servizio da dove stai avviando il tuo servizio:
[Service]
Type=simple
ExecStart=here will be your service executable name
Restart=always
RestartSec=0
-
Restart=Configura se il servizio deve essere riavviato quando il processo del servizio termina, viene interrotto o viene raggiunto un timeout. Accetta uno dei seguenti valori:
no,on-success,on-failure,on-abnormal,on-watchdog,on-abortoalways. Se impostato suno(impostazione predefinita). -
RestartSec=Configura il tempo di sospensione prima di riavviare un servizio (come configurato con
Restart=). Accetta un valore senza unità in secondi.
Queste due opzioni devono essere sotto [Service] tag in un file di servizio.
Ho usato monit monit per questo. Un post su askfedoraproject mi suggerisce che questo è ancora un buon modo per monitorare i processi e riavviarli automaticamente.
Fornisce una buona configurazione granulare delle funzioni di monitoraggio, come decidere se un processo ha avuto esito negativo e le azioni da intraprendere per ripristinarlo.