From dc0df5eb470ef5dff446bec186c184f45f40423a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 17 Jan 2025 22:35:26 +0100 Subject: [PATCH] =?UTF-8?q?services:=20Add=20the=20Shepherd=E2=80=99s=20?= =?UTF-8?q?=E2=80=98transient=E2=80=99=20and=20=E2=80=98timer=E2=80=99=20t?= =?UTF-8?q?o=20=E2=80=98%base-services=E2=80=99.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/base.scm (%base-services): Add instances of ‘shepherd-timer-service-type’ and ‘shepherd-transient-service-type’. Change-Id: I28a35d0dce40b142ee71b330b1cf7a3d222ef6bd --- gnu/services/base.scm | 4 ++++ gnu/services/shepherd.scm | 34 ++++++++++++++++++---------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 5967457002d..7331c030d71 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -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 diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 5f2625ac20e..328bfbedfff 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -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: