summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-09-17 08:59:13 +0200
committerLudovic Courtès <ludo@gnu.org>2014-09-17 08:59:13 +0200
commit66d5d8c072dcb90ad4e8fafe9c0ec86efff4c499 (patch)
treefeb4cc34bed6d5c210ce4569c5a201b6010bdf3d /gnu/services
parentbebc8681c261961ceace16a7f0cfc3ebdba5a4aa (diff)
downloadguix-66d5d8c072dcb90ad4e8fafe9c0ec86efff4c499.tar.gz
services: udev: Make non-respawnable.
* gnu/services/base.scm (udev-service): Add 'respawn?' field.
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/base.scm7
1 files changed, 6 insertions, 1 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index c40bc1a4c2..3b85363fe2 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -578,7 +578,12 @@ extra rules from the packages listed in @var{rules}."
                              (system* (string-append #$udev "/bin/udevadm")
                                       "settle")
                              pid)))))
-             (stop #~(make-kill-destructor))))))
+             (stop #~(make-kill-destructor))
+
+             ;; When halting the system, 'udev' is actually killed by
+             ;; 'user-processes', i.e., before its own 'stop' method was
+             ;; called.  Thus, make sure it is not respawned.
+             (respawn? #f)))))
 
 (define (device-mapping-service target command)
   "Return a service that maps device @var{target}, a string such as