me
/
guix
Archived
1
0
Fork 0

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>
master
Attila Lendvai 2024-01-25 16:05:41 +01:00 committed by Ludovic Courtès
parent 5d2bc09f0a
commit dde76db33f
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 23 additions and 0 deletions

View File

@ -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

View File

@ -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