From 398128de6130648154240a4537d7fb014f379229 Mon Sep 17 00:00:00 2001 From: Yann DUPONT Date: Wed, 30 Oct 2024 14:12:48 +0000 Subject: [PATCH] Merge branch 'devel' into 'main' --- glicid/services/rc-local.scm | 44 +++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/glicid/services/rc-local.scm b/glicid/services/rc-local.scm index a91ddc7..8de132d 100644 --- a/glicid/services/rc-local.scm +++ b/glicid/services/rc-local.scm @@ -10,7 +10,16 @@ rc-local-configuration rc-local-configuration? rc-local-service - rc-local-service-type)) + rc-local-service-type + + %default-rc-multiplelocal-conf + rc-multiplelocal-configuration + rc-multiplelocal-configuration? + rc-multiplelocal-service + rc-multiplelocal-service-type + + +)) (define %default-rc-local-conf (plain-file "rc-local" " @@ -45,3 +54,36 @@ (extensions (list (service-extension shepherd-root-service-type rc-local-service))) (description "Run a script in a rc-local like form"))) +(define %default-rc-multiplelocal-conf + (plain-file "rc-multiplelocal" " + # Empty file as we do nothing by default + ")) + +(define-record-type* + + rc-multiplelocal-configuration make-rc-multiplelocal-configuration + rc-multiplelocal-configuration? + (config-file rc-multiplelocal-config-file (default %default-rc-multiplelocal-conf)) + (log-file log-file (default "/var/log/rc-multiplelocal.log"))) + +(define rc-multiplelocal-service + (match-lambda + (($ config-file log-file) + (list + (shepherd-service + (provision '(rc-multiplelocal)) + (documentation "Run rc-multiplelocal.") + (requirement '(user-processes udev)) + (respawn? #f) + (one-shot? #t) + (start #~(make-forkexec-constructor + (list #$(file-append bash "/bin/bash") "-l" #$config-file) + #:log-file #$log-file )) + (stop #~(make-kill-destructor))))))) + +(define rc-multiplelocal-service-type + (service-type + (name 'rc-multiplelocal) + (extensions (list (service-extension shepherd-root-service-type rc-multiplelocal-service))) + (description "Run a script in a rc-multiplelocal like form"))) +