SLS introduction

David Henningsson david.henningsson at
Tue Aug 17 08:32:26 UTC 2010

2010-08-17 03:06, Jacob Peddicord skrev:
> Hello devel-discuss,
> Recently I've finished up a Google Summer of Code project relating to
> system service management. These packages are jobservice and
> jobs-admin, and you may have heard of them on the Planet. If you're
> curious, install jobs-admin in maverick and give things a go from
> System > Administration > System Jobs.
> I've written a short post[1] on SLS (service-level settings), a
> framework that makes it easy for users to change basic config options.
> An analogy is that jobservice and SLS are the PackageKit of service
> management; that is to say that they should work the same on many
> different platforms where supported.
> If you maintain a system service (ie, you install something into
> /etc/init.d or /etc/init) I would love if you would take a look at
> that post and the short screencast[2][3]. I promise the video won't
> bore you too much. :) If that piques your interest, I'd *really*
> appreciate if you took a peek at the full documentation[4] for the
> format and provided feedback.
> Furthermore, if you have any comments on the concept of SLS itself or
> service settings, please send them my way. We want to make this the
> best system for managing services, including integrating jobservice
> into other applications to automate some processes.
> Finally, if you maintain a service and are brave, curious, or just
> have some free time, why not give writing a quick SLS file a shot?
> Give me a ping on IRC (jacob) or email and I'll help you out.

Hi Jacob,

I'm not a system service maintainer, but I had to write a few
configuration GUIs (and backends) at my previous employment. And so I
have a few basic thoughts about it:

First, I think it is a very good idea to have some consistency on how
different services are configured. I think it will help newcoming users
to have a consistent configuration GUI. In addition, integrate it with
ConsoleKit, and you might a secure way of letting different users
configure different services.

It doesn't feel really ready to take on much more than the very simplest
programs at this point, however. And there is, or will probably be, a
scalability problem as the number of programs require their setting
types, and this probably requires additional thought.

One missing feature, I believe, is to be able to handle sections in
ini-style files. In simplest form, this just means being able to specify
a section name in the "parse" tag, but if you look at e g samba, you
want to be able to add and remove entire sections, and then configure
those sections.

Later, you'll find that one service wants you to add a list of icons
instead of strings, another needs a grid, yet another wants you to order
strings a specific order (i e the strings are fixed but the order
configurable), yet another wants you to be able to add and remove sets
of settings, someone wants a color box, another wants advanced grouping
of settings, etc etc. You might end up having a very bloated SLS schema,
trying to cover every case in the world.

There is also the update mechanism, is there any way in SLS to specify
what to do when committing settings to make them take effect in the
configured service?

Also, it would be nice with thought through help, i e probably a pointer
to some help file, and/or additional hints available when selecting the
actual setting.

So to sum up - good job so far, but you are probably just getting
started :-)

David Henningsson, Canonical Ltd.

More information about the Ubuntu-devel-discuss mailing list