diff mbox series

[bug#61146,Shepherd] doc: Update user services example for `services already running'.

Message ID 87a6218tt6.fsf@gnu.org
State New
Headers show
Series [bug#61146,Shepherd] doc: Update user services example for `services already running'. | expand

Commit Message

Janneke Nieuwenhuizen Jan. 29, 2023, 11:27 a.m. UTC
Hi,

I've been struggling with my home shepherd startup for a while,
wondering what changed, overlooking this new error message in the log.
Shouldn't this change have been mentioned in NEWS?  FWIW, this now
faulty example is also shown here

    https://guix.gnu.org/eo/blog/2020/gnu-shepherd-user-services/

Anyway, as the change was made quite some time ago I imagine that any
other users will have figured this out by now.

Greetings,
Janneke

Comments

Ludovic Courtès March 4, 2023, 7:51 p.m. UTC | #1
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

>>From de09ecb16b547830f0df1efc42c78affaaf9c9c4 Mon Sep 17 00:00:00 2001
> From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
> Date: Sun, 29 Jan 2023 12:05:32 +0100
> Subject: [PATCH Shepherd] doc: Update user services example for `services
>  already running'.
>
> The previously suggested example now gives
>
>     Services already running, so not daemonizing.
>
> which is fixed by daemonizing right away.
>
> This is a follow-up to commit
>     3197c1c161d10b7f76771a2943f20fdafc5cc14a
>     service: 'daemonize' action does nothing when services are already running.
>
> * doc/shepherd.texi (Managing User Services): Daemonize before starting
> services.

Applied, thanks!

You’re right that the change in question should have been in ‘NEWS’.  I
guess I didn’t realize this could cause problems because in effect
daemonizing after child processes had been started would not work
correctly (shepherd wouldn’t receive SIGCHLD for those.)

Ludo’.
diff mbox series

Patch

From de09ecb16b547830f0df1efc42c78affaaf9c9c4 Mon Sep 17 00:00:00 2001
From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
Date: Sun, 29 Jan 2023 12:05:32 +0100
Subject: [PATCH Shepherd] doc: Update user services example for `services
 already running'.

The previously suggested example now gives

    Services already running, so not daemonizing.

which is fixed by daemonizing right away.

This is a follow-up to commit
    3197c1c161d10b7f76771a2943f20fdafc5cc14a
    service: 'daemonize' action does nothing when services are already running.

* doc/shepherd.texi (Managing User Services): Daemonize before starting
services.
---
 doc/shepherd.texi | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/doc/shepherd.texi b/doc/shepherd.texi
index d25a8f2..538c334 100644
--- a/doc/shepherd.texi
+++ b/doc/shepherd.texi
@@ -13,7 +13,7 @@  Copyright @copyright{} @value{OLD-YEARS} Wolfgang J@"ahrling@*
 Copyright @copyright{} @value{NEW-YEARS} Ludovic Courtès@*
 Copyright @copyright{} 2020 Brice Waegeneire@*
 Copyright @copyright{} 2020 Oleg Pykhalov
-Copyright @copyright{} 2020 Jan (janneke) Nieuwenhuizen@*
+Copyright @copyright{} 2020, 2023 Jan (janneke) Nieuwenhuizen@*
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -1353,6 +1353,9 @@  load individual service definitions from
 (use-modules (shepherd service)
              ((ice-9 ftw) #:select (scandir)))
 
+;; Send shepherd into the background
+(action 'shepherd 'daemonize)
+
 ;; Load all the files in the directory 'init.d' with a suffix '.scm'.
 (for-each
   (lambda (file)
@@ -1361,8 +1364,6 @@  load individual service definitions from
            (lambda (file)
              (string-suffix? ".scm" file))))
 
-;; Send shepherd into the background
-(action 'shepherd 'daemonize)
 @end lisp
 
 Then, individual user services can be put in
-- 
2.38.1