summary refs log tree commit diff
path: root/gnu/home/services
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/home/services')
-rw-r--r--gnu/home/services/shepherd.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index 176f4575cb..962e633618 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -77,7 +77,19 @@ as shepherd package."
           (use-modules (srfi srfi-34)
                        (system repl error-handling))
 
-          (register-services (map load '#$files))
+          (define (make-user-module)
+            ;; Copied from (shepherd support), where it's private.
+            (let ((m (make-fresh-user-module)))
+              (module-use! m (resolve-interface '(shepherd service)))
+              m))
+
+          (register-services
+           (map (lambda (file)
+                  (save-module-excursion
+                   (lambda ()
+                     (set-current-module (make-user-module))
+                     (load file))))
+                '#$files))
 
           #$@(if daemonize?
                  `((action 'root 'daemonize))