civodul pushed a commit to branch master
in repository shepherd.

commit efa2f45c5f7dc735407381b7b8a83d6c37f828db
Author: Ludovic Courtès <[email protected]>
Date:   Mon Nov 21 22:18:50 2016 +0100

    Register SIGCHLD handler in (sherpherd) rather than at the top level.
    
    * modules/shepherd/service.scm: Move top-level call to 'sigaction' to...
    * modules/shepherd.scm (main): ... here.
---
 modules/shepherd.scm         |    4 ++++
 modules/shepherd/service.scm |    3 ---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/modules/shepherd.scm b/modules/shepherd.scm
index e8bd44f..dd8a076 100644
--- a/modules/shepherd.scm
+++ b/modules/shepherd.scm
@@ -142,6 +142,10 @@
 
     ;; Start the 'root' service.
     (start root-service)
+
+    ;; Install the SIGCHLD handler.
+    (sigaction SIGCHLD respawn-service SA_NOCLDSTOP)
+
     ;; This _must_ succeed.  (We could also put the `catch' around
     ;; `main', but it is often useful to get the backtrace, and
     ;; `caught-error' does not do this yet.)
diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm
index a62962c..3890675 100644
--- a/modules/shepherd/service.scm
+++ b/modules/shepherd/service.scm
@@ -1014,9 +1014,6 @@ otherwise by updating its state."
          ;; loop so we don't miss any terminated child process.
          (loop))))))
 
-;; Install it as the handler.
-(sigaction SIGCHLD respawn-service SA_NOCLDSTOP)
-
 ;; Add NEW-SERVICES to the list of known services.
 (define (register-services . new-services)
   (define (register-single-service new)

Reply via email to