supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
From: Vincent Danen <vdanen@annvix.org>
To: rehan khan <rehan.khan@dsl.pipex.com>
Cc: Bernhard Graf <list-supervision@augensalat.de>,
	supervision@list.skarnet.org
Subject: Re: using runit as init
Date: Sun, 13 Jan 2008 20:50:47 -0700	[thread overview]
Message-ID: <20080114035047.GP41886@linsec.ca> (raw)
In-Reply-To: <50F2BE60A0EF6D478B1BCC633DEC28CC01F70A@server.home.internal>

[-- Attachment #1: Type: text/plain, Size: 4155 bytes --]

* rehan khan <rehan.khan@dsl.pipex.com> [2008-01-13 10:35:40 -0000]:

>> >> Fortunately, I don't have one run script that's more than 4 or 5
>> >> lines, and most of that is whitespace :)
>> >
>> >Lucky you.
>> >You don't run mysql, do you?
>> 
>> I do, but it could be done in less than 5 lines.  My current runscript
>> for mysql is 29 lines, but a lot of that is error checking and settting
>> variables, none of which would be required for a single person who knows
>> what he's doing.
>> 
>> mysqld is no more complex than anything else.
>> 
>
>I think this is one of the problems with why runit has had slower takeup and initng and upstart are stealing it's thunder, in the major distro arena - no offence to the fine annvix distro. Much of the documentation available on the net provide these highly abreviated init scripts which might only apply to linux (runit is multi OS). This is not actually what is required in a general purpose OS. The scripts need to be complete in the sense that they can cope with most things thrown at them including incomplete configurations, initial startups etc. In fact when one gets to mad java apps like Tomcat and Hsqldb the scripts become nightmares as they have to cope with so many OS's and java versions and such like.
>
>mysqld is an interesting example. On a freshly installed OS nothing is initialised for mysql. How would one cope with this situation? The fedora scripts ask the user for input and setup initial databases.

Depends on the OS.  For annvix, the default database is setup when the
rpm is installed.  I believe most distros do something similar...
granted, I don't use much beyond annvix and mandriva, but I can't
imagine anyone thinking that an initscript is a good place to be asking
for user configuration.  Initscripts should be non-interactive... it
certainly isn't the right place to be asking users for configuration info.

>Runit does not have any in-built mechanism for this this scenario and it needs to be built into the supporting scripts. Runit also does not have any mechanism to signal the system that user input is required and that all other services should not write to the console while this is happening. Runit also does not have a mechanism to signal that a particular services needs to have exclusive access to the system (useful if one wants to migrate the rc.sysinit script to a bunch of runit services). The scripts built around runit need to take care of these situations. At the end of startup there needs to be some kind of indication that services have failed/succeeded for some reason otherwise they may go un-noticed.

This could be useful, granted, but doesn't necessarily need to be done
by runit.  A simple script called after everything gets started could
check to see what is down and should be up, then report on those.  with
annvix, we use a frontend to sv called srv, and srv --list will tell you
what is up, down, should be up, when it changed state, etc.

But I don't think runit needs to change to allow people to execute
configuration during service startup becuase I think these services
should be configured before they're told to start.

Distros that use initscripts to setup services themselves are, imho,
bastardizing what initscripts were designed for in a very wrong way.

>In some ways I think runsvdir could use some additional functionality and I am thinking of re-implementing it in python. Runsvdir does in effect supervise all the runsv processes (when it is used) and would be a good place to co-ordinate this kind of activity (process signalling, holding a dependancy database). I probably need to do this anyway to get Linux Standards Base compliance.
>
>It would be nice to see a collection of multi-OS (linux, bsd etc) init scripts somewhere out there. Perhaps if someone could help me out with the cvs/svn setup on the fedorafastboot project we can get a general script repository setup?

The annvix svn is open and we have runscripts for a number of services
that can easily be cherrypicked by anyone interested.
http://svn.annvix.org/.

-- 
Vincent Danen @ http://linsec.ca/

[-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --]

  reply	other threads:[~2008-01-14  3:50 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-03 20:51 Bernhard Graf
2008-01-04  0:22 ` Mike Buland
2008-01-05  0:06   ` Bernhard Graf
     [not found]   ` <12EC84FDD73F4BD8A78E7501EB19F1E2@home.internal>
2008-01-05  7:45     ` rehan khan
2008-01-05 23:17       ` Bernhard Graf
2008-01-08  7:11         ` Vincent Danen
2008-01-08 22:28           ` Bernhard Graf
2008-01-09  2:05             ` Vincent Danen
2008-01-09 23:06               ` Bernhard Graf
2008-01-09 23:34                 ` Mike Buland
2008-01-09 23:51                   ` Charlie Brady
2008-01-10  9:22                     ` Bernhard Graf
2008-01-10  9:20                   ` Bernhard Graf
2008-01-10 20:06                     ` Mike Buland
2008-01-11  7:58                       ` Bernhard Graf
2008-01-11 14:30                         ` Mike Buland
2008-01-12 10:18                           ` Bernhard Graf
2008-01-12 17:13                             ` supervising (Re: using runit as init) Charlie Brady
2008-01-12 17:32                               ` supervising mysql (Re: supervising (Re: using runit as init)) Charlie Brady
2008-01-13  4:40                             ` using runit as init Vincent Danen
2008-01-13 15:36                               ` Charlie Brady
2008-01-13 18:28                                 ` Mike Buland
2008-01-13 18:39                                   ` Charlie Brady
2008-01-13 18:49                                     ` Mike Buland
2008-01-14  3:55                                       ` Vincent Danen
2008-01-14 15:11                                         ` Charlie Brady
2008-01-14 15:21                                           ` Vincent Danen
     [not found]                                     ` <6A64B0D384404190ACB76E0A376CD148@home.internal>
2008-01-13 21:06                                       ` rehan khan
2008-01-14  3:53                                 ` Vincent Danen
     [not found]                             ` <CDFFB8AF013F4762AE02CF6A1BDCB27A@home.internal>
2008-01-13 10:35                               ` rehan khan
2008-01-14  3:50                                 ` Vincent Danen [this message]
2008-01-13 18:52                             ` Mike Buland
     [not found]                     ` <85040AD9CA634253A8FDB9F7DA6BD200@home.internal>
2008-01-10 22:08                       ` rehan khan
2008-01-11  1:28                         ` Charlie Brady
     [not found]                   ` <C1A5323F485E4A75B75ADB58B664E35E@home.internal>
2008-01-10 21:56                     ` rehan khan
2008-01-09 23:35                 ` KORN Andras
2008-01-10  8:39                   ` Bernhard Graf

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=20080114035047.GP41886@linsec.ca \
    --to=vdanen@annvix.org \
    --cc=list-supervision@augensalat.de \
    --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).