How to use Systemd to restart a service when down?

Sébastien picture Sébastien · Mar 10, 2015 · Viewed 12k times · Source

On my server I use elasticSearch which regularly gets down and the result is a 500 error for my users. I understand Systemd is now the reference for managing services.

How can I use Systemd to restart my elastic search service automatically when it gets down ? I found ways to restart it but not automatically, without me checking if it's down.

Answer

Rathin Paul picture Rathin Paul · Mar 10, 2015

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 or always. If set to no (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.