@@ -42888,6 +42888,14 @@ Shepherd Services
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. See @pxref{Defining
+Services,,, shepherd, The GNU Shepherd Manual} for details.
+
+@item @code{respawn-delay} (default: @code{#f})
+Wait @code{respawn-delay} 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
@@ -55,6 +55,8 @@ (define-module (gnu services shepherd)
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 @@ (define-record-type* <shepherd-service>
(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 @@ (define (shepherd-service-file service)
#: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
From: Attila Lendvai <attila@lendvai.name> * 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 --- doc/guix.texi | 8 ++++++++ gnu/services/shepherd.scm | 14 ++++++++++++++ 2 files changed, 22 insertions(+) base-commit: 162d6a2fdd6af13272967c77347a54934ecb45e6 prerequisite-patch-id: 2adcd37ab1f0752ec27a4edabbabe1c65d88f122