From ae97e8065a0e3be60d16c0d9e158afc697aa94e5 Mon Sep 17 00:00:00 2001
From: Laurent Bercot
Date: Thu, 5 Apr 2018 09:42:37 +0000
Subject: Add note about SIGINT in s6-svscan and s6-supervise doc
---
doc/s6-svscan.html | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
(limited to 'doc/s6-svscan.html')
diff --git a/doc/s6-svscan.html b/doc/s6-svscan.html
index 7649abd..4bb943b 100644
--- a/doc/s6-svscan.html
+++ b/doc/s6-svscan.html
@@ -200,7 +200,7 @@ uses s6-svscanctl -n), but inactive
s6-supervise processes will not be restarted if they die.
- Implementation notes
+ Notes
- s6-svscan is designed to run until the machine is shut down. It is
@@ -220,6 +220,19 @@ to guarantee that s6-svscan does not use heap memory at all.
- When run with the -t0 option, s6-svscan never polls,
it only wakes up on notifications, just like s6-supervise. The s6 supervision
tree can be used in energy-critical environments.
+ - The supervision tree (i.e. the tree of processes made of s6-svscan and
+all its scions) is not supposed to have a controlling terminal; s6-svscan
+generally is either process 1 or a child of process 1, not something that is
+launched from a terminal. If you run s6-svscan from an interactive shell, be
+warned that typing ^C in the controlling terminal (which sends a SIGINT to
+all processes in the foreground process group in the terminal) will terminate
+the supervision tree, but not the supervised processes - so, the supervised
+processes will keep running as orphans. This is by design: supervised
+processes should be as resilient as possible, even when their supervisors
+die. However, if you want to launch s6-svscan from an interactive shell and
+need your services to die with the supervision tree when you ^C it, you can
+obtain this behaviour by creating ./nosetsid files in every
+service directory.