How to use Systemd to restart a service when down?
If you are using a systemd service file to start your service, then add the lines below to your service file from where you are starting your service:
[Service]
Type=simple
ExecStart=here will be your service executable name
Restart=always
RestartSec=0
Restart=
Configures whether the service shall be restarted when the service process exits, is killed, or a timeout is reached. Takes one of the following values:
no
,on-success
,on-failure
,on-abnormal
,on-watchdog
,on-abort
oralways
. If set tono
(the default).RestartSec=
Configures the time to sleep before restarting a service (as configured with
Restart=
). Takes a unit-less value in seconds.
These two options have to be under the [Service]
tag in a service file.
I have used monit monit for this. A post at askfedoraproject suggests to me that this is still a good way to monitor processes and automatically restart them.
It provides good granular configuration of the monitoring functions, how to decide if a process has failed, and actions to be taken to recover it.