summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-11-10 23:23:32 +0100
committerLudovic Courtès <ludo@gnu.org>2014-11-10 23:23:32 +0100
commitfdaacbad85a23f89db9431477684fb1333de03f3 (patch)
tree6817ad6bfc18cde17837f14bd1d29980589e4519
parent03920078d5073a9b0674b01f3e4d1f5b082a5195 (diff)
downloadguix-fdaacbad85a23f89db9431477684fb1333de03f3.tar.gz
services: Add 'auto-start?' field to <service>.
* gnu/services.scm (<service>)[auto-start?]: New field.
* gnu/services/dmd.scm (dmd-configuration-file): Honor it.
* gnu/system/install.scm (cow-store-service): Add 'auto-start?' field.
-rw-r--r--gnu/services.scm3
-rw-r--r--gnu/services/dmd.scm4
-rw-r--r--gnu/system/install.scm4
3 files changed, 10 insertions, 1 deletions
diff --git a/gnu/services.scm b/gnu/services.scm
index 37ecc019ec..43e51b998c 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -27,6 +27,7 @@
             service-respawn?
             service-start
             service-stop
+            service-auto-start?
             service-activate
             service-user-accounts
             service-user-groups
@@ -51,6 +52,8 @@
   (start         service-start)                   ; g-expression (procedure)
   (stop          service-stop                     ; g-expression (procedure)
                  (default #~(const #f)))
+  (auto-start?   service-auto-start?              ; Boolean
+                 (default #t))
   (user-accounts service-user-accounts            ; list of <user-account>
                  (default '()))
   (user-groups   service-user-groups              ; list of <user-groups>
diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm
index 59c2373779..35b6b384c1 100644
--- a/gnu/services/dmd.scm
+++ b/gnu/services/dmd.scm
@@ -68,7 +68,9 @@
           (setenv "PATH" "/run/current-system/profile/bin")
 
           (format #t "starting services...~%")
-          (for-each start '#$(append-map service-provision services))))
+          (for-each start
+                    '#$(append-map service-provision
+                                   (filter service-auto-start? services)))))
 
     (gexp->file "dmd.conf" config)))
 
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 6b3aa6cbf2..961361b937 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -102,6 +102,10 @@ the user's target storage device rather than on the RAM disk."
              (documentation
               "Make the store copy-on-write, with writes going to \
 the given target.")
+
+             ;; This is meant to be explicitly started by the user.
+             (auto-start? #f)
+
              (start #~(case-lambda
                         ((target)
                          #$(make-cow-store #~target)