Search code examples
linuxservicedebianmonitorsystemd

How to use Systemd to restart a service when down?


On my server I use elasticSearch which regularly goes 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 goes down? I found ways to restart it, but not automatically without me checking if it's down.


Solution

  • 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.