services: shepherd: Support one-shot services.
* gnu/services/shepherd.scm (<shepherd-service>)[one-shot?]: New field. (shepherd-service-file): Pass #:one-shot? to the <service> constructor. * doc/guix.texi (Shepherd Services): Document it.
This commit is contained in:
parent
9fb1ca0808
commit
95ef8b85b1
|
@ -25124,6 +25124,12 @@ shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the
|
||||||
@item @code{requirements} (default: @code{'()})
|
@item @code{requirements} (default: @code{'()})
|
||||||
List of symbols denoting the Shepherd services this one depends on.
|
List of symbols denoting the Shepherd services this one depends on.
|
||||||
|
|
||||||
|
@cindex one-shot services, for the Shepherd
|
||||||
|
@item @code{one-shot?} (default: @code{#f})
|
||||||
|
Whether this service is @dfn{one-shot}. One-shot services stop immediately
|
||||||
|
after their @code{start} action has completed. @xref{Slots of services,,,
|
||||||
|
shepherd, The GNU Shepherd Manual}, for more info.
|
||||||
|
|
||||||
@item @code{respawn?} (default: @code{#t})
|
@item @code{respawn?} (default: @code{#t})
|
||||||
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.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||||
;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au>
|
;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||||
;;;
|
;;;
|
||||||
|
@ -44,6 +44,7 @@
|
||||||
shepherd-service-provision
|
shepherd-service-provision
|
||||||
shepherd-service-canonical-name
|
shepherd-service-canonical-name
|
||||||
shepherd-service-requirement
|
shepherd-service-requirement
|
||||||
|
shepherd-service-one-shot?
|
||||||
shepherd-service-respawn?
|
shepherd-service-respawn?
|
||||||
shepherd-service-start
|
shepherd-service-start
|
||||||
shepherd-service-stop
|
shepherd-service-stop
|
||||||
|
@ -149,6 +150,8 @@ DEFAULT is given, use it as the service's default value."
|
||||||
(provision shepherd-service-provision) ;list of symbols
|
(provision shepherd-service-provision) ;list of symbols
|
||||||
(requirement shepherd-service-requirement ;list of symbols
|
(requirement shepherd-service-requirement ;list of symbols
|
||||||
(default '()))
|
(default '()))
|
||||||
|
(one-shot? shepherd-service-one-shot? ;Boolean
|
||||||
|
(default #f))
|
||||||
(respawn? shepherd-service-respawn? ;Boolean
|
(respawn? shepherd-service-respawn? ;Boolean
|
||||||
(default #t))
|
(default #t))
|
||||||
(start shepherd-service-start) ;g-expression (procedure)
|
(start shepherd-service-start) ;g-expression (procedure)
|
||||||
|
@ -238,6 +241,11 @@ stored."
|
||||||
#:docstring '#$(shepherd-service-documentation service)
|
#:docstring '#$(shepherd-service-documentation service)
|
||||||
#:provides '#$(shepherd-service-provision service)
|
#:provides '#$(shepherd-service-provision service)
|
||||||
#:requires '#$(shepherd-service-requirement service)
|
#:requires '#$(shepherd-service-requirement service)
|
||||||
|
|
||||||
|
;; The 'one-shot?' slot is new in Shepherd 0.6.0.
|
||||||
|
;; Older versions ignore it.
|
||||||
|
#:one-shot? '#$(shepherd-service-one-shot? service)
|
||||||
|
|
||||||
#:respawn? '#$(shepherd-service-respawn? service)
|
#:respawn? '#$(shepherd-service-respawn? service)
|
||||||
#:start #$(shepherd-service-start service)
|
#:start #$(shepherd-service-start service)
|
||||||
#:stop #$(shepherd-service-stop service)
|
#:stop #$(shepherd-service-stop service)
|
||||||
|
|
Loading…
Reference in New Issue