From ad8302b50b20c57d5067c681a2bb1249ce2a28be Mon Sep 17 00:00:00 2001
From: Laurent Bercot
Date: Fri, 10 Apr 2026 12:47:59 +0000
Subject: Go a little easier on execline advocacy
---
doc/overview.html | 5 ++++-
doc/s6-svscan-1.html | 17 +++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/doc/overview.html b/doc/overview.html
index b4f977a..164cffd 100644
--- a/doc/overview.html
+++ b/doc/overview.html
@@ -313,7 +313,7 @@ order. Very often, a run script can be reduced to a single command line -
likely a long one, but still a single one. (That is the main reason why
using the
execline language
-to write run scripts is recommended: execline makes it natural to handle
+to write run scripts is a good idea: execline makes it natural to handle
long command lines made of massive amounts of chain loading. This is by no
means mandatory, though: a run script can be any executable file you want,
provided that running it eventually results in a long-lived process with
@@ -383,6 +383,9 @@ to check whether they're ready or not:
s6-notifyoncheck.
This is polling, which is bad, but unfortunately necessary for
many daemons as of 2019.
+ The s6-notify-fd-from-socket
+program is the s6 way of supporting programs that use systemd's sd_notify()
+notification mechanism.
diff --git a/doc/s6-svscan-1.html b/doc/s6-svscan-1.html
index b68d2bb..875e22e 100644
--- a/doc/s6-svscan-1.html
+++ b/doc/s6-svscan-1.html
@@ -237,12 +237,10 @@ init a script.
Of course, most people will use the shell as scripting
-language; however, I advocate the use of
-execline
-for this, and not only for the obvious reasons. Piping s6-svscan's
+language; however, they will find that piping s6-svscan's
stderr to a logging service before said service is even up requires
-some tricky fifo handling that execline can do
-and the shell cannot.
+some tricky fifo handling that the shell cannot
+do portably. See below for more details.
@@ -254,8 +252,7 @@ and the shell cannot.
stage 3 init is naturally the /run/service/.s6-svscan/finish program.
Of course, /run/service/.s6-svscan/finish can be a symbolic link
to anything else; just make sure it points to something in the root
-filesystem (unless your program is an execline script, in which case
-it is not even necessary).
+filesystem.
What stage 3-4 init must do
@@ -382,15 +379,15 @@ that will provide such a reader process.
- This second point cannot be solved in a shell script, and that is why
-you are discouraged to write your stage 1 init script in the shell
+ This second point cannot be portably solved in a shell script, and that is why
+it's a deceptively bad idea to write your stage 1 init script in the shell
language: you cannot properly set up a FIFO output for s6-svscan without
resorting to horrible and unreliable hacks involving a temporary background
FIFO reader process.
- Instead, you are encouraged to use the
+ Instead, I suggest using the
execline language -
or, at least,
the redirfd
--
cgit v1.3.1