News and announcements
Upstart 0.6.5 released
Written for upstart by Scott James Remnant (Canonical) on 2010-02-04
Haven't quite followed the original release plan here, but I thought it
was important to get a new Upstart release out sooner rather than later
for the stable crowd. The main change here is that the libnih library
has been separated out into its own source tree (you can get it from
Launchpad), along with some merging of patches that had lived in the
Ubuntu branch of Upstart for a while back into the trunk.
0.6.5 2010-02-04 "Our last, best hope for victory"
* Since libnih has been separated out into its own project, Upstart
no longer includes its source and now uses the installed version by
default.
* The external nih-dbus-tool means that cross-compilation is trivial,
the path to it may be overriden with NIH_DBUS_TOOL=... as an
argument to configure. (Bug: #426740)
* Developers may still build against a local libnih source tree by
passing --with-
* There is a new initctl "reload" command, with matching
main process of the named job instance.
* Event operator matches in jobs now support "!=" in addition to the
usual "=", e.g.:
(Bug: #513035)
* Moved D-Bus system bus reconnection trigger from SIGHUP to SIGUSR1,
since SIGHUP is already used for a forced configuration reload and
causes Upstart to "forget" state.
* Fixed bug where the default runlevel would be lost when an
* Fixed "Unhandled error" message from shutdown. (Bug: #426332)
* Fixed "Unhandled error" assertion crash from Upstart child
processes when failing to spawn a job. (Bug: #451917)
* No longer holds /dev/console open, so the SAK SysRq key will not
kill Upstart. (Bug: #486005)
* Restored sync() call before reboot().
* Added missing OPTIONS section to init(8) manpage. (Bug: #449883)
Upstart 0.6.3 released
Written for upstart by Scott James Remnant (Canonical) on 2009-08-02
The biggest disadvantage to people actually using your software is that they find bugs, this one's a doozy because it looks like it affects older 0.3 releases as well. Now seems as good a time as any to repeat my recommendation that distributions, mobile and embedded appliance developers using Upstart consider using 0.6 in their next release rather than sticking with 0.3
I've also today created the 0.6 stable branch in bzr, those following stable releases with bzr will want to update their trees to lp:~scott/upstart/0.6. New stable releases will be made off this branch while trunk receives more exciting developments.
0.6.3 2009-08-02 "Our last, best hope for peace"
* Fixed an assertion when a job's main process is terminated
while in the stopping state. (Bug: #406408)
* Fixed compilation on ia64.
* nih-dbus-tool(1) manpage will not be installed, since the binary
is not. (Bug: #403103)
The tarball can be found here:
http://
For more information on upstart:
Upstart 0.6.2 released
Written for upstart by Scott James Remnant (Canonical) on 2009-07-21
I've started the process of converting Ubuntu's boot process to be Upstart native, and hit both an assertion and an annoying bug with the fork following. Might as well keep up the release momentum, so here's a release to fix those.
0.6.2 2009-07-21 "Buggrit, millennium hand and shrimp"
* Fixed an assertion when a job receives a stop event or the
stop command while still in the starting state.
* Changed exec() trace handling to allow the main process to
exec another before fork()ing while still following (e.g.
main script exec'ing a daemon)
* Restored missing chdir("/") call when catching crashes.
The tarball can be found here:
http://
For more information on upstart:
Upstart 0.6.1 released
Written for upstart by Scott James Remnant (Canonical) on 2009-07-16
Thanks to Jeff Oliver's debugging, I was able to understand why the
ptrace()-based daemon supervision wasn't working half the time and come
up with a simple fix. Having working "expect fork" and "expect daemon"
is a big win!
Cleaned up a couple of minor "runlevel in sysinit" bugs at the same
time; and since D-Bus 1.2.16 has been released, bumped the requirement
so people know they can just use the release.
0.6.1 2009-07-16 "Born in the wagon of a travelling show"
* D-Bus 1.2.16 is now required.
* Updated ptrace() code to handle receiving the trapped stopped
child _before_ we receive the trapped fork() syscall, which
seems to be the most common way the race goes when running
as init. This seems to make "expect fork/daemon" largely work.
(Bug: #264711)
* runlevel will now output "unknown" and exit with an error when
called before the first telinit call. (Bug: #400248)
* runlevel will prefix error messages with the utmp filename being
used. (Bug: #400241)
The tarball can be found here:
http://
For more information on upstart:
upstart 0.6.0 released
Written for upstart by Scott James Remnant (Canonical) on 2009-07-09
At last, the announcement of a new stable series. This one's based off 0.5.2 but with a lot of the sharp corners shaved off, and lots of bug fixes.
I strongly suggest that everybody using 0.3.x or 0.5.x now bite the bullet and switch to using 0.6.0, I probably won't make another release on those branches now. There's a bit of a compatibility bump moving the configuration directory, but I'll make sure that the 0.10 development series is backwards compatible with it.
0.6.0 2009-07-09 "How appropriate, you fight like a cow"
* The licence for Upstart has been changed back to version 2 of the
GNU GPL.
* D-Bus 1.2.15 is now required, this is the current GIT HEAD
pending a 1.2.16 release.
* Configuration paths have changed. Global configuration now
resides in "/etc/init.conf" while jobs are now configured in
"/etc/init"
* Job configuration filenames must now end in ".conf"
* Default configuration files are now supplied in the "conf"
sub-directory of the source, and installed into "/etc/init".
These match the Debian/Ubuntu sysvinit configuration so may
require some tweaking for other distributions, but provide an
excellent base.
The old example-jobs tarballs are deprecated.
* The D-Bus interface remains unstable, to reflect this the current
interface name has changed to "com.ubuntu.
name of the job and instance interfaces have changed to match.
* The "EmitEvent" D-Bus method gains a wait argument, when given
as TRUE (the recommended setting) the method call will be blocked
until all effects of the event have finished. When FALSE the
method call will return once the event has been queued.
* The "Start", "Stop" and "Restart" D-Bus methods of jobs and
instances gain a similar wait argument.
* The Upstart D-Bus object now has "version" and "log_priority"
properties. The former is to obtain the version of the init daemon,
the latter allows you to obtain and change the logging priority.
* Job D-Bus objects now have "name", "description", "author" and
"version" properties to obtain the job name and the contents of
the equivalent job file fields for the others.
* Instance D-Bus objects now have "name", "goal", "state" and
"processes" properties to obtain the instance name, goal, state
and list of running processes and their pids respectively.
* The default D-Bus security policy now permits use of the "Get"
methods by all users, including obtaining values of properties.
* initctl has been rewritten with functionality more along the
lines of Upstart 0.3.x than before; since many distributions are
still shipping 0.3.x the summary of changes for the tool reflects
both changes from 0.3.x and 0.5.x
* The global "-p"/"--pid" argument has been dropped, since
communication is over D-Bus. New "--system" and "--dest" arguments
have been added to force communication over the system bus, and
specify the destination, instead of using the private socket (this
is the default when run as non-root to permit "list" and "status"
to work for ordinary users).
* The "-i"/"--id" and "--show-ids" options to commands have been
dropped since jobs no longer have ids.
* Since instances may now have names, these will be displayed in
brackets after the job name when one is present. The output of
the goal and state are now expressed as "start/running" instead
of "(start) running" to disambiguate.
* initctl "start" and "stop" now only output the final state of
the job, not intermediate states it passes through. When called
with "--no-wait", the commands now output a status before
returning (which may not be the final status).
* initctl "start", "stop" and "status" now only accept a single
job name. Further arguments are taken as KEY=VALUE environment
variables to pass to the job, replacing the previous "-e" option.
* There is a new initctl "restart" command, with matching
/sbin/restart symlink. This is the atomic equivalent of calling
"stop" and "start" with the exception that a stopped job will
not be started again.
* In keeping with the newer instance model, instance jobs are now
output on separate lines with their full names rather than
indented under a "master" instance.
* initctl "status" will exit non-zero if the job name was not
found. (Bug: #328323)
* initctl "status" now outputs information for multi-instance
jobs. (Bug: #331407)
* initctl "list" no longer accepts a pattern, use grep. Output
is no longer sorted.
* initctl "emit" no longer outputs changes that occur as a result
of the event.
* When initctl "emit" is called with "--no-wait", it will return
immediately. (Bug: #324890)
* initctl "emit" now only accepts a single event name. Further
arguments are taken as KEY=VALUE environment for the event,
replacing the previous "-e" option.
* initctl "jobs" and "events" have been dropped.
* initctl "log-priority" may be called without arguments, in
which case it will output the current priority. (Bug: #280529)
* initctl "reload" has been renamed to "reload-
to avoid confusion with reloading a job's configuration.
* initctl(8) man page updated. (Bug: #285753)
* runlevel no longer accepts the --set and --reboot arguments,
instead telinit and shutdown write these records into utmp and wtmp.
* runlevel(7) man page added to describe the runlevel event, and
the implementation of runlevels and System V compatibility in
Upstart. (Bug: #60429)
* telinit will no longer silently ignore the "a", "b" or "c"
runlevels.
* telinit now accepts the previously ignored "-e" argument, passing
the environment variables given along with the runlevel event.
* telinit now officially accepts the "q"/"Q" and "u"/"U" arguments,
the former will reload the Upstart configuration while the latter
will re-execute Upstart.
* telinit q will also attempt to reconnect to the D-Bus system bus
if the connection has not been made, or has been lost.
(Bug: #323022)
* reboot no longer silently ignores the "-t" option.
* reboot now silently ignores the "-n", "-i" and "-h" options; it
will no longer sync your disks, down your network interfaces or
spin down your hard drives. This functionality is all handled
by the kernel on a modern system. (Bug: #92685)
* reboot now writes a "shutdown" record to /var/log/wtmp, this means
that the "-w" option is honoured with its original intent. We
still silently ignore the "-d" option.
* shutdown message generation fixed to be more easily translatable.
(Bug: #102565)
* The TERM/KILL timeout, and other system timeouts, now use the
monotonic clock so are unaffected by system clock changes.
(Bug: #389588)
* Respawn detection now uses the monotonic clock so is unaffected
by system clock changes. (Bug: #389586)
* Significant improvement in the amount of manual pages included
with Upstart and their content. (Bug: #60429)
* A manual page refering people from /etc/inittab to /etc/init
is also included. (Bug: #72058)
The tarball can be found here:
http://
For more information on upstart: