supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
From: Charlie Brady <charlieb-supervision@budge.apana.org.au>
To: rehan khan <rehan.khan@dsl.pipex.com>
Cc: supervision@list.skarnet.org
Subject: RE: Customised control help
Date: Wed, 2 Jan 2008 12:37:18 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0801021217560.5667@e-smith.charlieb.ott.istop.com> (raw)
In-Reply-To: <50F2BE60A0EF6D478B1BCC633DEC28CC01F705@server.home.internal>


On Wed, 2 Jan 2008, rehan khan wrote:

> :( Don't let my confusion upset you so. I'm just not an expert on these things and there is a lot to take in.
>
> I think that the following section makes it a little confusing
>
> 'before interpreting the command. If the program exits with return code 0'
>
> It might be a little clearer, language-wise, if the text stays with 
> using script instead of using command and program interchangeably with 
> script (they are different, are they not?).

'script' is a subset of program. 'scripts' are programs, but not all 
'programs' are scripts. 'command' is a one byte character written into the 
control fifo.

> Separating out the exceptions would also highlight them. So the text 
> would be something like:
>
> Customise Control
>
> For each control character c sent to the control pipe, runsv first 
> checks if service/control/c exists and is executable. If so, it starts 
> service/control/c and waits for it to terminate, before interpreting the 
> result (return code) of the script.

Reference here to 'script' is incorrect. service/control/c is a program 
(and only might be a script).

I think it would be better to just end the sentence with "and waits for it 
to terminate". The existing "before interpreting the command" appears to 
be confusing, and "before interpreting the result (return code) of the 
script" may also be confusing. At any rate it is an unnnecessary phrase, 
as "If the script exits with return code 0" most definitely implies that 
runsv interprets the return code.

> If the script exits with return code 0, runsv refrains from sending the 
> service the corresponding signal. If the script exits with a return code 
> greater than 0 the corresponding signal is sent to the service.

You are assuming that return codes are not less than zero.

> Notes for Customised Control:
> The command o is always considered as command u.
> On command d first service/control/t is checked, and then service/control/d.
> On command x first service/control/t is checked, and then service/control/x.
> The control of the optional log service cannot be customized.

I wonder whether it would make things clearer if the sections Control and 
Customize Control were combined. viz:

Control

The named pipes service/supervise/control, and (optionally) 
service/log/supervise/control are provided to give commands to runsv. You 
can use sv(8) to control the service or just write one of the following 
characters to the named pipe:

...
d
     Down. If the service is not running, do nothing. If ./control/t
     exists, and is executable, execute it and wait for it to terminate.
     If ./control/t does not exist, but ./service/control/d exists and
     is executable, execute it and wait for it to terminate. If neither
     program exists, or the program exits with non-zero status, then
     send the service a TERM signal, and then a CONT signal. If ./run
     exits, start ./finish if it exists. After it stops, do not restart
     service.
...



  reply	other threads:[~2008-01-02 17:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-01  8:27 Rehan Khan
2008-01-01 10:29 ` KORN Andras
2008-01-01 16:29 ` Charlie Brady
     [not found] ` <14AE52C8045C4D1F9AC27FD137DA0657@home.internal>
2008-01-02  6:44   ` rehan khan
2008-01-02 10:42     ` KORN Andras
2008-01-02 14:41     ` Charlie Brady
     [not found]     ` <0DEDB6FEF7B44A7C8C121C2E41C63F43@home.internal>
2008-01-02 17:03       ` rehan khan
2008-01-02 17:37         ` Charlie Brady [this message]
     [not found]         ` <CE0657F3ABAE4CE5B8C8E594928A8067@home.internal>
2008-01-03  4:33           ` rehan khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0801021217560.5667@e-smith.charlieb.ott.istop.com \
    --to=charlieb-supervision@budge.apana.org.au \
    --cc=rehan.khan@dsl.pipex.com \
    --cc=supervision@list.skarnet.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).