[InitKit] InitKit

Scott James Remnant scott at ubuntu.com
Tue Dec 11 13:08:29 PST 2007


I'm mailing you guys because we've talked about Upstart or InitKit at
some point, and you've expressed more than a passing interest in its
implementation or design.

Since I know you're all busy people, rather than fill your INBOX with
what could turn out to be a large thread that you don't care about, if
you are interested please subscribe to the mailing list instead and
direct your replies there:

	http://lists.freedesktop.org/mailman/listinfo/initkit


Upstart suffered from a strange effect of open source; I sent out lots
of early thoughts on the design, and didn't really get much buy-in
because there wasn't any code.  But when I went away and wrote the code,
now nobody was interested in it because there was "too much code!" --
it's too difficult to swallow in one pill.

InitKit is a half-way step.  It's a freedesktop.org project that will
host the specifications, requirements and some implementations for doing
"Init with D-Bus".

It will be possible for an InitKit implementation to be a simple D-Bus
service that runs the init scripts by hand; and it will be possible for
an InitKit implementation to be a full init replacement.

The hope is that by starting off with small bite-sized chunks of work,
it will be easy for the various distributions to experiment with and
find out whether they like it.  And that will make it easier for
projects like D-Bus to accept that InitKit exists and support it.


I'm still wary of making an announcement without anything to show other
than an archive-less mailing list and an empty Wiki though.  I'd like to
announce with a first draft of the D-Bus specification, and a trivial
"/etc/init.d" wrapper implementation.

That's where I hope you guys will come in, by getting different people
from different groups involved early on.  Also checking my work and
helping make some decisions :-)


First up: terminology.  What do we call what InitKit manages?

"service" is obvious, but has connotations of supervision; it also
overlaps with "D-Bus Service Activation" which is likely to scare that
group into believing we're trying to replace D-Bus instead of use it
more.

"task" has the opposite problem, it implies it's a one-off thing that
doesn't stay around or get supervised.

"job" is a bit simple, everything in UNIX ends up being a job.

"script" implies it's written in shell, which daemons mostly aren't

"daemon" implies it forks into the background, which ideally they
shouldn't

"process" says it's just one thing, but it might be several

I find some amusing words in a Thesaurus: "duty", "chore", "stint" :-)

I'll assume "service" for now, but mentally replace that word with your
chosen favourite until we've achieved consensus.


D-Bus names:

bus name:   org.freedesktop.ServiceManager
object:     /org/freedesktop/ServiceManager
interface:  org.freedesktop.ServiceManager

or

bus name:   org.freedesktop.ServiceManager
object:     /org/freedesktop/Service/Manager
interface:  org.freedesktop.Service.Manager

or

bus name:   org.freedesktop.Init
object:     /org/freedesktop/Init
interface:  org.freedesktop.Init

(latter kinda implies it *is* init you're talking to, and makes it less
generic)


What about the method form?

Start (String service_name)
Stop (String service_name)

Or do we build for extension?

FindServiceByName (String name)

which returns an object that implements org.freedesktop.Service, which
has the following methods:

Start ()
Stop ()

Obviously in either case, the call should return when the service is
running or stopped, or return an error.


Any immediate suggestions for additional functionality for the first
draft?  That gives us the most basic of basic abilities, enough to
demonstrate the concept, and enough to implement dbus activation with
it.

Scott
-- 
Scott James Remnant
scott at ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.freedesktop.org/archives/initkit/attachments/20071211/2dbbe3db/attachment.pgp 


More information about the InitKit mailing list