[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/07: services: udev: Simplify 'start' method.
From: |
Ludovic Courtès |
Subject: |
01/07: services: udev: Simplify 'start' method. |
Date: |
Wed, 19 Sep 2018 12:25:38 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 7fd3082522e7007b47a6aa765d10a9cc3277b36d
Author: Ludovic Courtès <address@hidden>
Date: Wed Sep 19 10:54:46 2018 +0200
services: udev: Simplify 'start' method.
* gnu/services/base.scm (udev-shepherd-service)[start](find): Remove.
(udev): Hardwire the eudev file name.
Use 'fork+exec-command' instead of 'primitive-fork' and 'exec-command'.
---
gnu/services/base.scm | 43 ++++++++++++++++---------------------------
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 921914c..beb4731 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1846,16 +1846,9 @@ item of @var{packages}."
(documentation "Populate the /dev directory, dynamically.")
(start #~(lambda ()
- (define find
- (@ (srfi srfi-1) find))
-
(define udevd
- ;; Choose the right 'udevd'.
- (find file-exists?
- (map (lambda (suffix)
- (string-append #$udev suffix))
- '("/libexec/udev/udevd" ;udev
- "/sbin/udevd")))) ;eudev
+ ;; 'udevd' from eudev.
+ #$(file-append udev "/sbin/udevd"))
(define (wait-for-udevd)
;; Wait until someone's listening on udevd's control
@@ -1891,24 +1884,20 @@ item of @var{packages}."
(make-static-device-nodes directory)
(umask old-umask))
- (let ((pid (primitive-fork)))
- (case pid
- ((0)
- (exec-command (list udevd)))
- (else
- ;; Wait until udevd is up and running. This
- ;; appears to be needed so that the events
- ;; triggered below are actually handled.
- (wait-for-udevd)
-
- ;; Trigger device node creation.
- (system* #$(file-append udev "/bin/udevadm")
- "trigger" "--action=add")
-
- ;; Wait for things to settle down.
- (system* #$(file-append udev "/bin/udevadm")
- "settle")
- pid)))))
+ (let ((pid (fork+exec-command (list udevd))))
+ ;; Wait until udevd is up and running. This appears to
+ ;; be needed so that the events triggered below are
+ ;; actually handled.
+ (wait-for-udevd)
+
+ ;; Trigger device node creation.
+ (system* #$(file-append udev "/bin/udevadm")
+ "trigger" "--action=add")
+
+ ;; Wait for things to settle down.
+ (system* #$(file-append udev "/bin/udevadm")
+ "settle")
+ pid)))
(stop #~(make-kill-destructor))
;; When halting the system, 'udev' is actually killed by
- branch master updated (4d67925 -> 1d98b44), Ludovic Courtès, 2018/09/19
- 01/07: services: udev: Simplify 'start' method.,
Ludovic Courtès <=
- 03/07: build-system/asdf: Handle all asdf dependency specifications., Ludovic Courtès, 2018/09/19
- 02/07: services: networking: Remove unbound variable reference in 'stop'., Ludovic Courtès, 2018/09/19
- 04/07: build-system/asdf: Log lisp system invocations., Ludovic Courtès, 2018/09/19
- 05/07: build-system/asdf: Use invoke., Ludovic Courtès, 2018/09/19
- 06/07: build-system/asdf: Adopt asdf conventions., Ludovic Courtès, 2018/09/19
- 07/07: gnu: sbcl-slynk: Fix the build., Ludovic Courtès, 2018/09/19