Upstart user session available for testing

Stéphane Graber stgraber at ubuntu.com
Tue Feb 19 22:16:33 UTC 2013


Hello,

The foundations team has been working on Upstart User Sessions for a
good part of this cycle. An early preview is now available for testing.

Upstart user sessions basically mean that instead of having lightdm
spawn Xsession which in turn spawn gnome-session, upstart is now
inserted between Xsession and gnome-session.
This means that bits of gnome-session can now be turned into user jobs,
can react on any event coming from the system wide upstart daemon and
can be monitored/respawned just like system jobs are.

The idea behind this work is to allow for fewer long lasting processes
on the Ubuntu desktop by having more event driven short lasting
processes. It should also help with the perceived stability of the
desktop thanks to upstart's respawn feature.

Details can be found at:
https://wiki.ubuntu.com/FoundationsTeam/Specs/RaringUpstartUserSessions

The test PPA is at:
https://launchpad.net/~stgraber/+archive/foundation-build


This PPA contains a build of upstart trunk that's been tested for the
past week by members of the Foundations team and Desktop team. So we're
reasonably sure that it's stable. We however recommend that you keep a
working upstart package around just in case we missed something and you
need to do emergency revert of usptart on your system.


What that package does is install a new version of upstart containing
all our user session changes. It also ships with a custom Xsession hook
and a new X session called ubuntu-upstart.

Once you have that package install, you'll notice a new session in
lightdm called "Ubuntu (upstart)". Selecting this session will start a
standard Ubuntu Unity session that'll be running inside an upstart user
session.

After using this for the past few days, I haven't noticed any side
effect. On the upside, you can now dump extra jobs in ~/.init, list
running user jobs with "initctl list", start/stop them with "initctl
start/stop" and do pretty much anything you'd expect from standard
upstart jobs.

As an example, write the following to ~/.init/mumble.conf:
"""
start on started pulseaudio and :sys:sound-device-added
stop on :sys:sound-device-removed
exec mumble
"""

Then plug a USB headset and you'll see mumble pop up on your desktop.


The system wide jobs can be found under /usr/share/upstart/sessions/
Those are examples that I wrote last week. I expect a final version of
those to end up in the individual source packages.

Log output from the jobs can be found under ~/.cache/upstart/


As it's today, we only support a standard Unity session, however adding
support for any other session based on gnome-session should be trivial.

I plan on spending a bit of time looking at whether we can get the
system generic enough to apply to any Xsession but I think we'll want to
keep this opt-in for the moment and not force everything to run on top
of upstart (thinking of the flavours that ship their own desktop
environment).

As far as the actual release is concerned, we are two branches away from
having everything that's in my PPA merged upstream, so we're well on
track to have a new upstream release before FeatureFreeze so we can have
this landed and integrated by then.

I also have a branch with an experimental dconf bridge which lets you
react to keys being set/modified/removed. It still needs a bit of
cleanup though and it's not clear whether we'll want that running by
default or not.

Feedback, suggestions, bug reports would be much appreciated.
We're available in #upstart (on freenode) and can be contacted on
upstart-devel at lists.u.c (Cced).

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20130219/eeae7692/attachment.pgp>


More information about the ubuntu-devel mailing list