From Fedora Project Wiki
No edit summary
Line 88: Line 88:
=== Install updates ===  
=== Install updates ===  
* Update upstart package to upstart-0.6.3-2 - [http://plautrba.fedorapeople.org/upstart/0.6.3-2 upstart/0.6.3-2/]
* Update upstart package to upstart-0.6.3-2 - [http://plautrba.fedorapeople.org/upstart/0.6.3-2 upstart/0.6.3-2/]
* Update to initscripts-9.02-1.3.upstart06 [http://plautrba.fedorapeople.org/upstart/initscripts/initscripts-9.02-1.3.upstart06.src.rpm initscripts-9.02-1.3.upstart06.src.rpm] [http://koji.fedoraproject.org/koji/taskinfo?taskID=1825230 koji build]
* Update to initscripts-9.02-1.4.upstart06 [http://plautrba.fedorapeople.org/upstart/initscripts/initscripts-9.02-1.4.upstart06.src.rpm initscripts-9.02-1.4.upstart06.src.rpm] [http://koji.fedoraproject.org/koji/taskinfo?taskID=1846319 koji build]


* Reboot
* Reboot

Revision as of 15:26, 3 December 2009

Upstart 0.6

Summary

Fedora currently uses Upstart 0.3.11. We would like to move to the 0.6 series, which is the currently maintained upstream release. It introduces a few changes to the way Upstart works and is a stepping stone to the more radical 1.0 release. This release is expected to be forward compatible, and also cures some stability problems.

This will also be the first release of Upstart that Fedora has carried which communicates via DBus.

Owner

  • email: <plautrba@redhat.com>
  • email: <cdahlin@redhat.com>

Current status

  • Targeted release: Fedora 42
  • Last updated: 2009-11-27
  • Percentage of completion: 25%


Detailed Description

Upstart is an event-based replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.

Feature highlights:

  • Tasks and Services are started and stopped by events;
  • Events are generated as tasks and services are started and stopped;
  • Events may be received from any other process on the system;
  • Services may be respawned if they die unexpectedly;
  • Supervision and respawning of daemons which separate from their parent process;
  • Communication with the init daemon over D-Bus.

Benefit to Fedora

The latest upstream Upstart version is 0.6.0 and upstream is pushing to have all the major distros move to the 0.6 series. The new release fixes a lot of bugs, strengthens some of the code patterns against future bugs, and introduces a job format that will continue to be supported through 1.0.

Scope

We've carried a patch so that Upstart does not forget its state when it is re-executed. Its got some issues, but it has fixed one or two severe issues. A new version of this has to be written for 0.6; alternatively, we need to change how we re-execute init.

Job definitions are now in a new location (/etc/init rather than /etc/events.d) and the format has changed somewhat, see init(5). We'll need to update our own init scripts to account for this.

The list of packages that ship job definitions is:

  • initscripts
  • upstart
  • vpnc
  • ConsoleKit
  • clamav
  • dhcp-forwarder
  • hdapsd
  • ip-sentinel
  • milter-greylist
  • olpc-utils
  • tor

How To Test

Install updates

  • Reboot

# kill 1
# reboot

Test it

  • Bring each upstart job up and down and verify that the job is started and cleaned up correctly and that initctl list reflects its state.
  • Move from runlevel s to 1, 3, and 5 and back again and verify that the system ends up in the correct state each time.
  • Re-exec init and verify that jobs that were running stay running according to initctl list.

User Experience

Possibly some changes in command interfaces like initctl, but for most users noticing the change would be a Bad Thing.

Dependencies

Contingency Plan

Just don't ship it :) 0.3 should be relatively supported for some time given its presence in Ubuntu LTS.

Documentation

Nothing needed from Fedora specifically, but the new Upstart release does come with a whole new set of manpages.

Release Notes

"Upstart, Fedora's service management and system initialization daemon, has been upgraded to 0.6.0. If you have been using custom Upstart jobs, they will not work until moved to the new location in /etc/init and ported to the new format."

Comments and Discussion