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 Whether to restart the service when it stops, for instance when the
underlying process dies. 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} @item @code{start}
@itemx @code{stop} (default: @code{#~(const #f)}) @itemx @code{stop} (default: @code{#~(const #f)})
The @code{start} and @code{stop} fields refer to the Shepherd's The @code{start} and @code{stop} fields refer to the Shepherd's

View File

@ -55,6 +55,8 @@
shepherd-service-canonical-name shepherd-service-canonical-name
shepherd-service-requirement shepherd-service-requirement
shepherd-service-one-shot? shepherd-service-one-shot?
shepherd-service-respawn-limit
shepherd-service-respawn-delay
shepherd-service-respawn? shepherd-service-respawn?
shepherd-service-start shepherd-service-start
shepherd-service-stop shepherd-service-stop
@ -211,6 +213,10 @@ DEFAULT is given, use it as the service's default value."
(default #f)) (default #f))
(respawn? shepherd-service-respawn? ;Boolean (respawn? shepherd-service-respawn? ;Boolean
(default #t)) (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) (start shepherd-service-start) ;g-expression (procedure)
(stop shepherd-service-stop ;g-expression (procedure) (stop shepherd-service-stop ;g-expression (procedure)
(default #~(const #f))) (default #~(const #f)))
@ -309,6 +315,14 @@ stored."
#:one-shot? '#$(shepherd-service-one-shot? service) #:one-shot? '#$(shepherd-service-one-shot? service)
#:respawn? '#$(shepherd-service-respawn? 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) #:start #$(shepherd-service-start service)
#:stop #$(shepherd-service-stop service) #:stop #$(shepherd-service-stop service)
#:actions #:actions