~ruther/guix-local

dde76db33fbdede6bf26821f8c21cca7df45e79e — Attila Lendvai 2 years ago 5d2bc09
services: shepherd: Add respawn-limit and respawn-delay.

* gnu/services/shepherd.scm (<shepherd-service>): Add respawn-limit and
respawn-delay.
(shepherd-service-file): Emit the two values into the shepherd service
constructor form.

Change-Id: I54408e8fb4bcc0956d9610771bf5c566fdc2914c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 23 insertions(+), 0 deletions(-)

M doc/guix.texi
M gnu/services/shepherd.scm
M doc/guix.texi => doc/guix.texi +9 -0
@@ 43143,6 43143,15 @@ shepherd, The GNU Shepherd Manual}, for more info.
Whether to restart the service when it stops, for instance when the
underlying process dies.

@item @code{respawn-limit} (default: @code{#f})
Set a limit on how many times and how frequently a service may be
restarted by Shepherd before it is disabled.  @xref{Defining
Services,,, shepherd, The GNU Shepherd Manual}, for details.

@item @code{respawn-delay} (default: @code{#f})
When true, this is the delay in seconds before restarting a failed
service.

@item @code{start}
@itemx @code{stop} (default: @code{#~(const #f)})
The @code{start} and @code{stop} fields refer to the Shepherd's

M gnu/services/shepherd.scm => gnu/services/shepherd.scm +14 -0
@@ 55,6 55,8 @@
            shepherd-service-canonical-name
            shepherd-service-requirement
            shepherd-service-one-shot?
            shepherd-service-respawn-limit
            shepherd-service-respawn-delay
            shepherd-service-respawn?
            shepherd-service-start
            shepherd-service-stop


@@ 211,6 213,10 @@ DEFAULT is given, use it as the service's default value."
                 (default #f))
  (respawn?      shepherd-service-respawn?             ;Boolean
                 (default #t))
  (respawn-limit shepherd-service-respawn-limit
                 (default #f))
  (respawn-delay shepherd-service-respawn-delay
                 (default #f))
  (start         shepherd-service-start)               ;g-expression (procedure)
  (stop          shepherd-service-stop                 ;g-expression (procedure)
                 (default #~(const #f)))


@@ 309,6 315,14 @@ stored."
                       #:one-shot? '#$(shepherd-service-one-shot? service)

                       #:respawn? '#$(shepherd-service-respawn? service)
                       #$@(if (shepherd-service-respawn-limit service)
                              `(#:respawn-limit
                                ,(shepherd-service-respawn-limit service))
                              '())
                       #$@(if (shepherd-service-respawn-delay service)
                              `(#:respawn-delay
                                ,(shepherd-service-respawn-delay service))
                              '())
                       #:start #$(shepherd-service-start service)
                       #:stop #$(shepherd-service-stop service)
                       #:actions