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-abort
oalways
. 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.