summaryrefslogtreecommitdiff
path: root/doc/s6-supervise.html
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2018-04-05 09:42:37 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2018-04-05 09:42:37 +0000
commitae97e8065a0e3be60d16c0d9e158afc697aa94e5 (patch)
tree00e44d6ab2a4099d0b21db69688747876cecb0b3 /doc/s6-supervise.html
parentdfe97bb01666ffc2af8029de06aa6ae5ff473a2a (diff)
downloads6-ae97e8065a0e3be60d16c0d9e158afc697aa94e5.tar.xz
Add note about SIGINT in s6-svscan and s6-supervise doc
Diffstat (limited to 'doc/s6-supervise.html')
-rw-r--r--doc/s6-supervise.html11
1 files changed, 11 insertions, 0 deletions
diff --git a/doc/s6-supervise.html b/doc/s6-supervise.html
index b2a83d5..d9852b5 100644
--- a/doc/s6-supervise.html
+++ b/doc/s6-supervise.html
@@ -171,6 +171,17 @@ better to have a collection of <a href="servicedir.html">service directories</a>
single <a href="scandir.html">scan directory</a>, and just run
<a href="s6-svscan.html">s6-svscan</a> on that scan directory. s6-svscan will spawn
the necessary s6-supervise processes, and will also take care of logged services. </li>
+ <li> s6-supervise is not supposed to have a controlling terminal: it's generally
+launched by a <a href="s6-svscan.html">s6-svscan</a> process that itself does not
+have a controlling terminal. If you run s6-supervise 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
+s6-supervise, but not the supervised processes - so, the daemon will keep running
+as an orphan. This is by design: supervised processes should be as resilient as
+possible, even when their supervisors die. However, if you want to launch
+s6-supervise from an interactive shell and need your service to die when you ^C it,
+you can obtain this behaviour by creating a <tt>./nosetsid</tt> file in the
+<a href="servicedir.html">service directory</a>. </li>
<li> You can use <a href="s6-svc.html">s6-svc</a> to send commands to the s6-supervise
process; mostly to change the service state and send signals to the monitored
process. </li>