~ruther/guix-local

dc0df5eb470ef5dff446bec186c184f45f40423a — Ludovic Courtès 1 year, 5 months ago e73cf57
services: Add the Shepherd’s ‘transient’ and ‘timer’ to ‘%base-services’.

* gnu/services/base.scm (%base-services): Add instances of
‘shepherd-timer-service-type’ and ‘shepherd-transient-service-type’.

Change-Id: I28a35d0dce40b142ee71b330b1cf7a3d222ef6bd
2 files changed, 22 insertions(+), 16 deletions(-)

M gnu/services/base.scm
M gnu/services/shepherd.scm
M gnu/services/base.scm => gnu/services/base.scm +4 -0
@@ 3750,6 3750,10 @@ login manager daemon.")

        (service log-rotation-service-type)

        ;; Convenient services brought by the Shepherd.
        (service shepherd-timer-service-type)
        (service shepherd-transient-service-type)

        ;; Periodically delete old build logs.
        (service log-cleanup-service-type
                 (log-cleanup-configuration

M gnu/services/shepherd.scm => gnu/services/shepherd.scm +18 -16
@@ 678,14 678,15 @@ seconds after @code{SIGTERM} has been sent are terminated with
(define shepherd-timer-service-type
  (shepherd-service-type
   'shepherd-timer
   (const (shepherd-service
           (provision '(timer))
           (requirement '(user-processes))
           (modules '((shepherd service timer)))
           (free-form #~(timer-service
                         '#$provision
                         #:requirement '#$requirement))))
   #t                                             ;ignored
   (lambda (requirement)
     (shepherd-service
      (provision '(timer))
      (requirement requirement)
      (modules '((shepherd service timer)))
      (free-form #~(timer-service
                    '#$provision
                    #:requirement '#$requirement))))
   '(user-processes)
   (description "The Shepherd @code{timer} service lets you schedule commands
dynamically, similar to the @code{at} command that your grandparents would use
on that Slackware they got on a floppy disk.  For example, consider this


@@ 700,14 701,15 @@ It does exactly what you would expect.")))
(define shepherd-transient-service-type
  (shepherd-service-type
   'shepherd-transient
   (const (shepherd-service
           (provision '(transient))
           (requirement '(user-processes))
           (modules '((shepherd service transient)))
           (free-form #~(transient-service
                         '#$provision
                         #:requirement '#$requirement))))
   #t                                             ;ignored
   (lambda (requirement)
     (shepherd-service
      (provision '(transient))
      (requirement requirement)
      (modules '((shepherd service transient)))
      (free-form #~(transient-service
                    '#$provision
                    #:requirement '#$requirement))))
   '(user-processes)
   (description "The Shepherd @code{transient} service lets you run commands
asynchronously, in the background, similar to @command{systemd-run}, as in
this example: