blob: 745226c96a69bf48d26e27f304bb501b63cd6cea [file] [log] [blame]
Scott James Remnant8c89a7b2011-03-22 10:52:25 -070011.2 2011-03-22 "This sort of thing is my bag, baby"
Scott James Remnantde6c4eb2011-03-16 18:03:52 -07002
Scott James Remnant0ea658f2011-03-22 10:46:46 -07003 * Fixed incorrect shell redirection syntax that broke at least
4 pdksh. (Bug: #739984)
5
Scott James Remnantcef00b82011-03-16 18:03:01 -070061.1 2011-03-16 "It's probably 'cause you think you're cooler than me"
Scott James Remnantf1d57772011-03-01 21:15:33 -08007
Scott James Remnantc7095772011-03-16 15:49:20 -07008 * When /sbin/halt is called (without -p), this now results in the
9 system being halted and not powered down. If you meant it to be
10 powered down, use /sbin/poweroff. (Bug: #532366)
11
Scott James Remnant74c6f022011-03-16 14:55:03 -070012 * Fixed file descriptor leak of /proc/self/fd/NN to shell scripts
13 executed by Upstart. (Bug: #619269)
14
Scott James Remnant540dcfd2011-03-16 15:54:56 -070015 * Fixed bug where console was closed too early, causing loss of error
16 messages and non-functioning keyboard-request event,
17 (Bug: #707151)
18
Scott James Remnant5e32d582011-03-16 15:42:48 -070019 * Fixed bug where environment variables containing unusual characters
20 were not accepted due to a mis-reading of POSIX. (Bug: #567068).
21
Scott James Remnantc7095772011-03-16 15:49:20 -070022 * Fixed non-removal of symlinks on "make uninstall". (Bug: #604227)
23
Scott James Remnant36fa1162011-03-16 15:11:24 -070024 * Reduced priority of job termination messages from warn to info
25 if the exit status or signal is listed in "normal exit".
26 (Bug: #522197)
27
Scott James Remnant410a0352011-03-01 20:56:51 -0800281.0 2011-03-01 "This is a fertile land, and we will thrive"
Scott James Remnant42fb11b2010-12-14 16:41:18 +000029
Scott James Remnant02977f82011-02-17 15:33:04 -080030 * Fixed an assertion when a file named /etc/init/.conf is created.
31 Discovered by Коренберг Марк (Bug: #720573)
32
Scott James Remnante5e20692010-12-20 09:57:55 +000033 * utmp entries will be replaced with DEAD_PROCESS ones when a
34 pid supervised by Upstart terminates. (Bug: #183729)
35
36 * shutdown now correctly returns error code if it fails to shutdown
37 the system.
38
Scott James Remnant9c6a2032010-12-21 13:54:49 +000039 * Included bash completion script in contrib directory.
40 (Bug: #672067)
41
Scott James Remnant5f66d4d2010-12-14 16:40:26 +0000420.6.7 2010-12-14 "Return of the Mole"
43
44 * A new "manual" stanza has been added to the configuration, this
45 removes any previously defined "start on" stanza for job so that
46 the job can only be started with initctl "start". This allows
47 quick disabling of a job with:
48
49 echo "manual" >> /etc/init/jobname.conf
Scott James Remnant319bde12010-04-27 12:48:44 -070050
Colin Watsone2d8fac2010-11-13 02:44:08 +000051 * Upstart now emits a "GoalChanged" D-Bus signal immediately after
52 changing the "goal" property of an instance, a "StateChanged"
53 signal after changing the "state" property, and a "Failed" signal
54 after marking an instance as failed.
Colin Watson8ed1c1e2010-11-10 23:23:22 +000055
Scott James Remnant5f66d4d2010-12-14 16:40:26 +000056 * Job objects now include "start_on", "stop_on" and "emits"
57 properties containing the appropriate information from the
58 configuration.
59
60 * For developers, a "debug" stanza has been added; if present in a
61 job, the job will wait before the exec call and can be attached
62 to by gdb to examine Upstart's state.
63
Scott James Remnant87796f62010-12-08 18:40:25 +000064 * Manpage fixes. (Bugs: #677392, #686734)
Scott James Remnantda55fa12010-12-08 18:33:41 +000065
Scott James Remnant98c65a62010-04-27 12:29:17 -0700660.6.6 2010-04-27 "No, she's dead, this is her son"
Scott James Remnantaca75642010-02-04 16:40:04 -080067
Scott James Remnant51d109b2010-02-26 15:33:12 +000068 * Upstart will automatically mount /proc and /sys on boot if they
69 have not already been mounted by the kernel or initramfs.
Scott James Remnant456f5cf2010-02-26 18:05:49 +000070 (Bug: #426263)
Scott James Remnant51d109b2010-02-26 15:33:12 +000071
Michael Biebl862fe182010-03-02 00:03:37 +000072 * Fixed double-quoting issue with the --with-local-libnih configure
73 option. (Bug: #530385)
74
Scott James Remnantbc23b122010-04-27 10:10:19 -070075 * libnih 1.0.2 is now required.
76
Scott James Remnantbfae97b2010-02-04 15:06:41 -0800770.6.5 2010-02-04 "Our last, best hope for victory"
Scott James Remnantb3918a62010-02-03 16:39:50 -080078
Scott James Remnantd2350362010-02-03 19:42:29 -080079 * Since libnih has been separated out into its own project, Upstart
80 no longer includes its source and now uses the installed version by
81 default.
82
Scott James Remnant6730f192010-02-04 00:47:34 -080083 * The external nih-dbus-tool means that cross-compilation is trivial,
84 the path to it may be overriden with NIH_DBUS_TOOL=... as an
85 argument to configure. (Bug: #426740)
86
Scott James Remnantd2350362010-02-03 19:42:29 -080087 * Developers may still build against a local libnih source tree by
88 passing --with-local-libnih=/path/to/libnih to configure.
89
Scott James Remnant004d8c02010-02-04 11:08:07 -080090 * There is a new initctl "reload" command, with matching
91 /sbin/reload symlink. This sends the SIGHUP signal to the running
92 main process of the named job instance.
93
Scott James Remnant9f236472010-02-04 12:08:59 -080094 * Event operator matches in jobs now support "!=" in addition to the
95 usual "=", e.g.:
96
97 start on net-device-added INTERFACE!=eth*
98
Scott James Remnant3a20ac02010-02-04 12:20:07 -080099 (Bug: #513035)
100
Scott James Remnant870620f2010-02-04 11:24:45 -0800101 * Moved D-Bus system bus reconnection trigger from SIGHUP to SIGUSR1,
102 since SIGHUP is already used for a forced configuration reload and
103 causes Upstart to "forget" state.
104
Johan Kiviniemi7ea666f2010-02-03 19:59:06 -0800105 * Fixed bug where the default runlevel would be lost when an
106 /etc/inittab file exists without an initdefault line. (Bug: #405847)
107
Scott James Remnant6d610662010-02-03 20:00:11 -0800108 * Fixed "Unhandled error" message from shutdown. (Bug: #426332)
109
Scott James Remnant34940012010-02-04 11:09:55 -0800110 * Fixed "Unhandled error" assertion crash from Upstart child
111 processes when failing to spawn a job. (Bug: #451917)
112
Scott James Remnantf99ea0c2010-02-04 11:14:30 -0800113 * No longer holds /dev/console open, so the SAK SysRq key will not
114 kill Upstart. (Bug: #486005)
115
Scott James Remnant61626292010-02-04 00:43:56 -0800116 * Restored sync() call before reboot().
117
Scott James Remnant7b50f2b2010-02-04 11:24:25 -0800118 * Added missing OPTIONS section to init(8) manpage. (Bug: #449883)
119
Scott James Remnantfacdb672009-08-02 20:01:34 +01001200.6.3 2009-08-02 "Our last, best hope for peace"
Scott James Remnant726290a2009-07-21 18:31:35 +0100121
Scott James Remnant826b8762009-08-01 19:08:50 +0100122 * Fixed an assertion when a job's main process is terminated
123 while in the stopping state. (Bug: #406408)
124
Scott James Remnantfacdb672009-08-02 20:01:34 +0100125 * Fixed compilation on ia64.
126
Scott James Remnant336f1a22009-08-01 21:08:35 +0100127 * nih-dbus-tool(1) manpage will not be installed, since the binary
128 is not. (Bug: #403103)
129
Scott James Remnant73e8fd32009-07-21 18:30:51 +01001300.6.2 2009-07-21 "Buggrit, millennium hand and shrimp"
Scott James Remnant9c372302009-07-16 18:08:52 +0100131
Scott James Remnantbeae7f22009-07-21 12:27:55 +0100132 * Fixed an assertion when a job receives a stop event or the
133 stop command while still in the starting state.
134
Scott James Remnant0a0c47d2009-07-21 13:03:23 +0100135 * Changed exec() trace handling to allow the main process to
136 exec another before fork()ing while still following (e.g.
137 main script exec'ing a daemon)
138
Scott James Remnant9d736bb2009-07-21 18:15:20 +0100139 * Restored missing chdir("/") call when catching crashes.
140
Scott James Remnantb52deb12009-07-16 18:05:31 +01001410.6.1 2009-07-16 "Born in the wagon of a travelling show"
Scott James Remnantce95ce22009-07-11 12:46:57 +0100142
Scott James Remnant0acfdc52009-07-15 11:13:46 +0100143 * D-Bus 1.2.16 is now required.
144
Scott James Remnantcf9f3ce2009-07-14 14:55:47 +0100145 * Updated ptrace() code to handle receiving the trapped stopped
146 child _before_ we receive the trapped fork() syscall, which
147 seems to be the most common way the race goes when running
148 as init. This seems to make "expect fork/daemon" largely work.
149 (Bug: #264711)
150
Scott James Remnante6de0452009-07-16 17:26:00 +0100151 * runlevel will now output "unknown" and exit with an error when
152 called before the first telinit call. (Bug: #400248)
153
Scott James Remnant3ef8fac2009-07-16 17:39:04 +0100154 * runlevel will prefix error messages with the utmp filename being
155 used. (Bug: #400241)
156
Scott James Remnant11caefc2009-07-09 17:18:26 +01001570.6.0 2009-07-09 "How appropriate, you fight like a cow"
Scott James Remnantb3338202009-06-23 01:02:58 +0100158
Scott James Remnantcf2e8332009-07-06 20:32:07 +0100159 * The licence for Upstart has been changed back to version 2 of the
160 GNU GPL.
161
Scott James Remnant057a8692009-07-09 16:40:34 +0100162 * D-Bus 1.2.15 is now required, this is the current GIT HEAD
163 pending a 1.2.16 release.
164
Scott James Remnantcf2e8332009-07-06 20:32:07 +0100165 * Configuration paths have changed. Global configuration now
166 resides in "/etc/init.conf" while jobs are now configured in
167 "/etc/init"
168
Scott James Remnant545bbe32009-07-08 22:05:59 +0100169 * Job configuration filenames must now end in ".conf"
170
Scott James Remnantedb382a2009-07-08 20:43:16 +0100171 * Default configuration files are now supplied in the "conf"
172 sub-directory of the source, and installed into "/etc/init".
173
174 These match the Debian/Ubuntu sysvinit configuration so may
175 require some tweaking for other distributions, but provide an
176 excellent base.
177
178 The old example-jobs tarballs are deprecated.
179
Scott James Remnantcf2e8332009-07-06 20:32:07 +0100180 * The D-Bus interface remains unstable, to reflect this the current
181 interface name has changed to "com.ubuntu.Upstart0_6" and the
182 name of the job and instance interfaces have changed to match.
183
184 * The "EmitEvent" D-Bus method gains a wait argument, when given
185 as TRUE (the recommended setting) the method call will be blocked
186 until all effects of the event have finished. When FALSE the
187 method call will return once the event has been queued.
188
189 * The "Start", "Stop" and "Restart" D-Bus methods of jobs and
190 instances gain a similar wait argument.
191
192 * The Upstart D-Bus object now has "version" and "log_priority"
193 properties. The former is to obtain the version of the init daemon,
194 the latter allows you to obtain and change the logging priority.
195
196 * Job D-Bus objects now have "name", "description", "author" and
197 "version" properties to obtain the job name and the contents of
198 the equivalent job file fields for the others.
199
200 * Instance D-Bus objects now have "name", "goal", "state" and
201 "processes" properties to obtain the instance name, goal, state
202 and list of running processes and their pids respectively.
203
204 * The default D-Bus security policy now permits use of the "Get"
205 methods by all users, including obtaining values of properties.
206
207 * initctl has been rewritten with functionality more along the
208 lines of Upstart 0.3.x than before; since many distributions are
209 still shipping 0.3.x the summary of changes for the tool reflects
210 both changes from 0.3.x and 0.5.x
211
212 * The global "-p"/"--pid" argument has been dropped, since
213 communication is over D-Bus. New "--system" and "--dest" arguments
214 have been added to force communication over the system bus, and
Scott James Remnant10a35f22009-07-08 20:05:46 +0100215 specify the destination, instead of using the private socket (this
216 is the default when run as non-root to permit "list" and "status"
217 to work for ordinary users).
Scott James Remnantcf2e8332009-07-06 20:32:07 +0100218
219 * The "-i"/"--id" and "--show-ids" options to commands have been
220 dropped since jobs no longer have ids.
221
222 * Since instances may now have names, these will be displayed in
223 brackets after the job name when one is present. The output of
224 the goal and state are now expressed as "start/running" instead
225 of "(start) running" to disambiguate.
226
227 * initctl "start" and "stop" now only output the final state of
228 the job, not intermediate states it passes through. When called
229 with "--no-wait", the commands now output a status before
230 returning (which may not be the final status).
231
232 * initctl "start", "stop" and "status" now only accept a single
233 job name. Further arguments are taken as KEY=VALUE environment
234 variables to pass to the job, replacing the previous "-e" option.
235
236 * There is a new initctl "restart" command, with matching
237 /sbin/restart symlink. This is the atomic equivalent of calling
238 "stop" and "start" with the exception that a stopped job will
239 not be started again.
240
241 * In keeping with the newer instance model, instance jobs are now
242 output on separate lines with their full names rather than
243 indented under a "master" instance.
244
245 * initctl "status" will exit non-zero if the job name was not
246 found. (Bug: #328323)
247
248 * initctl "status" now outputs information for multi-instance
249 jobs. (Bug: #331407)
250
251 * initctl "list" no longer accepts a pattern, use grep. Output
252 is no longer sorted.
253
254 * initctl "emit" no longer outputs changes that occur as a result
255 of the event.
256
257 * When initctl "emit" is called with "--no-wait", it will return
258 immediately. (Bug: #324890)
259
260 * initctl "emit" now only accepts a single event name. Further
261 arguments are taken as KEY=VALUE environment for the event,
262 replacing the previous "-e" option.
263
264 * initctl "jobs" and "events" have been dropped.
265
266 * initctl "log-priority" may be called without arguments, in
267 which case it will output the current priority. (Bug: #280529)
268
269 * initctl "reload" has been renamed to "reload-configuration"
270 to avoid confusion with reloading a job's configuration.
271
Scott James Remnant07b32242009-07-07 10:49:43 +0100272 * initctl(8) man page updated. (Bug: #285753)
273
Scott James Remnantff87eaf2009-07-08 18:38:25 +0100274 * runlevel no longer accepts the --set and --reboot arguments,
Scott James Remnantf24e55d2009-07-08 19:58:37 +0100275 instead telinit and shutdown write these records into utmp and wtmp.
Scott James Remnantff87eaf2009-07-08 18:38:25 +0100276
277 * runlevel(7) man page added to describe the runlevel event, and
278 the implementation of runlevels and System V compatibility in
279 Upstart. (Bug: #60429)
280
Scott James Remnant3aac7132009-07-08 19:02:56 +0100281 * telinit will no longer silently ignore the "a", "b" or "c"
282 runlevels.
283
Scott James Remnant3aac7132009-07-08 19:02:56 +0100284 * telinit now accepts the previously ignored "-e" argument, passing
285 the environment variables given along with the runlevel event.
286
287 * telinit now officially accepts the "q"/"Q" and "u"/"U" arguments,
288 the former will reload the Upstart configuration while the latter
289 will re-execute Upstart.
290
Scott James Remnantf127f9d2009-07-09 10:16:06 +0100291 * telinit q will also attempt to reconnect to the D-Bus system bus
292 if the connection has not been made, or has been lost.
293 (Bug: #323022)
294
Scott James Remnant461578a2009-07-08 19:30:12 +0100295 * reboot no longer silently ignores the "-t" option.
296
297 * reboot now silently ignores the "-n", "-i" and "-h" options; it
298 will no longer sync your disks, down your network interfaces or
299 spin down your hard drives. This functionality is all handled
300 by the kernel on a modern system. (Bug: #92685)
301
302 * reboot now writes a "shutdown" record to /var/log/wtmp, this means
303 that the "-w" option is honoured with its original intent. We
304 still silently ignore the "-d" option.
305
Scott James Remnantf24e55d2009-07-08 19:58:37 +0100306 * shutdown message generation fixed to be more easily translatable.
307 (Bug: #102565)
308
Scott James Remnant1e812b52009-07-09 10:10:37 +0100309 * The TERM/KILL timeout, and other system timeouts, now use the
310 monotonic clock so are unaffected by system clock changes.
311 (Bug: #389588)
312
313 * Respawn detection now uses the monotonic clock so is unaffected
314 by system clock changes. (Bug: #389586)
315
Scott James Remnant7c23b1f2009-07-09 15:56:49 +0100316 * Significant improvement in the amount of manual pages included
317 with Upstart and their content. (Bug: #60429)
318
Scott James Remnant6e568432009-07-09 16:01:07 +0100319 * A manual page refering people from /etc/inittab to /etc/init
320 is also included. (Bug: #72058)
321
Scott James Remnantb3338202009-06-23 01:02:58 +01003220.5.3 2009-06-22 "Britain's Flag Carrier"
323
324 * Fixed segfault when initctl status called with arguments.
325 (Bug: #388753)
326
327 * Fixed segfault when initctl log-priority called with no argument.
328 (Bug: #280529)
329
330 * Fixed shutdown to pass $INIT_HALT variable as last argument, not
331 as first. (Bug: #303574)
332
333 * Added temporary support for "telinit u" until we have true re-exec
334 support. This will be replaced by an initctl command in future.
335 (Bug: #388742)
336
337 * Corrected formatting of initctl(8) manpage. (Bug: #388745)
338
Scott James Remnant4ef6e282009-06-17 19:02:13 +01003390.5.2 2009-06-17 "Something, something, something, D-Bus"
340
341 * The licence for Upstart has been updated to GNU GPL v3.
342
343 * Overhaul of the automatically generated D-Bus bindings code,
344 fixing many issues with memory leaks, inconsistent return values
345 and loss of method returns after the method has taken place.
346
347 * D-Bus 1.2.4 is now required, and must be patched to fix
348 https://bugs.freedesktop.org/show_bug.cgi?id=22316
349
350 * D-Bus Job objects now have "name", "description", "author"
351 and "version" properties.
352
353 * D-Bus Instance object now have "name", "goal" and "state"
354 properties.
355
356 * initctl now obtains the name properties for display instead of
357 printing the mangled object path component. (Bug: #299290)
358
359 * D-Bus configuration updated now that the daemon is fixed to be
360 deny-by-default, and updated to avoid bare "send_interface"
361 stanzas. (Bug: #323021)
362
363 * Fixed assertion caused by the post-start or pre-stop scripts
364 exiting after the main process of a respawning job had exited
365 (Bug: #381048)
366
367 * The /proc filesystem need not be mounted if the "oom_adj"
368 configuration stanza is not used. (Bug: #259801)
369
370 * Overly large values to configuration stanzas are now caught
371 and rejected. (Bug: #340134)
372
373 * The --enable-compiler-warnings configure option has been
374 extended to add -Wextra, but turns off a few of the more extreme
375 warnings
376
377 * GNU C Library v2.4 (or backported inotify support) is required
378
379 * pkg-config 0.22 is now required, it probably was anyway but we
380 now explicitly check for it.
381
382 * Dependency on Python for the D-Bus binding tool has been dropped
383 and replaced with a dependency on expat 2.0.0
Scott James Remnant619905b2009-01-29 06:23:08 +0000384
3850.5.1 2009-01-29 "Unexpected item in bagging area"
386
387 * Major rewrite of the memory allocator used by Upstart; the
388 old allocator had several limitations and a few issues.
389 I must stress that none of the issues were known to affect
390 Upstart itself, however it pays to be prudent.
391
392 * An issue where an object in a linked list would be freed after
393 the linked list was freed was fixed. Upstart had some twisty
394 code logic to work around it, which has now been dropped.
395
396 * An issue where a string could fail to be appended in an OOM
397 situation was fixed; if Upstart is affected, this could cause
398 D-Bus Introspection data to be corrupted.
399
400 * An issue where multiple socket watches being freed could lead
401 to bad memory access has been fixed; Upstart 0.5.0 included a
402 temporary fix for the D-Bus connection handling, this replaces
403 that with a proper fix that also corrects the same problem for
404 timers and other main loop watches that Upstart was not believed
405 to be affected by.
406
407 * Compiler warnings when compiling the test suite with -O1 and
408 above have been fixed where found.
409
410 * A race condition in the test cases for a process stopping with
411 SIGSTOP has been fixed, this could sometimes cause this test
412 to hang.
413
Scott James Remnant19580e42009-01-26 01:16:57 +00004140.5.0 2008-08-12 "One of those deaf-mutes"
Scott James Remnant2e8760b2009-01-26 01:15:21 +0000415
416 * The relationship between job definitions and their running
417 instances has been overhauled completely. Jobs may have
418 zero or more instances, each one uniquely identified by
419 their instance name which is set by expanding the argument
420 to the "instance" stanza against the instance's environment.
421
422 For example, a job with "instance $TTY" in its definition
423 will have new instances created when started with TTY=tty1
424 and TTY=tty2, but starting again with TTY=tty1 will fail if
425 that instance is already running.
426
427 * The default job configuration remains to be a singleton,
428 however this is now accomplished simply by having the
429 default for the instance stanza set to a static string.
430
431 * Job events now include the instance name in a new $INSTANCE
432 variable, and will always have $UPSTART_INSTANCE set in the
433 environment of their processes.
434
435 * Jobs may export environment from themselves into the job
436 events using the new "export" stanza.
437
438 * Events no longer have both arguments and environment,
439 instead the order the environment is specified in is
440 remembered and is used when matching.
441
442 * The "start on" and "stop on" stanzas may now only be
443 specified once, multiple events should be joined with the
444 new "or" operator. A new "and" operator exists as well, and
445 parentheses are permitted, allowing arbitrarily complicated
446 expression matches.
447
448 * All environment from the matched start events is placed in
449 the job, with the list of matched events placed in the
450 $UPSTART_EVENTS variable, replacing the previous singular
451 $UPSTART_EVENT variable.
452
453 * The matches for the "stop on" stanza may refer to variables
454 from the job environment, which comes from the "start on"
455 stanza.
456
457 For example:
458 start on started apache or started httpd
459 stop on stopping $JOB
460
461 * Job environment from the start command or events is
462 available to all scripts, including "pre-stop" and "post-stop".
463
464 * Environment from the matched stop events is only available
465 to the "pre-stop" script, with the list of matched events
466 placed in the $UPSTART_STOP_EVENTS variable so that the list
467 of events that started the job is still available.
468
469 * Environment is no longer lost after a respawn.
470
471 * Environment from the kernel or initramfs may be included in
472 a job by use of the "env NAME" stanza without a value set.
473
474 * The "started" event is no longer emitted if the pre-stop
475 script restarts the job, since the "stopping" event was
476 never emitted.
477
478 * By default, jobs now have the most suitable settings for
479 a daemon process that would match what they would have had
480 by calling daemon(). In particular, this means that the
481 previous "service" stanza is now the default and tasks need
482 to specify a "task" stanza. It also means that if the job
483 really wishes to be a session leader (e.g. getty), it must
484 specify the new "session leader" stanza.
485
486 * Processes that fork once may be supervised with the new
487 "expect fork" stanza, processes that fork twice (most
488 daemons) may be supervised with the new "expect daemon"
489 stanza and processes that do not fork may signal readiness
490 by SIGSTOP with the new "expect stop" stanza.
491
492 * The "pid file", "pid timeout" and "daemon" stanzas have been
493 removed in favour of the new functionality.
494
495 * "respawn" now works for tasks, this will repeat the task
496 until it finishes with a zero exit status or any other
497 specified by "normal exit".
498
499 * "respawn limit" now only affects automatic respawns, not
500 those done by command.
501
502 * If the main process fails to start due to exec() error, or
503 other process setup error, it will not be respawned.
504
505 * "respawn limit" may be "unlimited".
506
507 * The "stalled" event has been removed.
508
509 * "logd" was not maintained, and did not function correctly,
510 so has been removed from the source. The "console logged"
511 stanza has also been removed.
512
513 * New "oom" stanza allows adjustment of the OOM killer
514 priority of the process and may be "never" to inhibit it.
515
516 * The configuration directory has now changed to
517 /etc/init/jobs.d
518
519 * Configuration is still reloaded with inotify, but may be
Scott James Remnant19580e42009-01-26 01:16:57 +0000520 forced by sending init a HUP signal or with "initctl reload".
Scott James Remnant2e8760b2009-01-26 01:15:21 +0000521
522 * Support for the STOP, CONT and TERM signals has been
523 removed.
524
525 * libupstart and the native IPC mechanism has been removed,
526 communication is now via D-Bus which is a new dependency.
527
528 * The dependency on D-Bus introduces build-dependencies on
529 pkg-config and Python.
530
531 * The minimal recommended kernel version is now 2.6.24
532
533 * The compat directory has been removed, the utilities are now
534 considered part of Upstart.
535
Scott James Remnant19580e42009-01-26 01:16:57 +0000536 * initctl jobs has been dropped.
537
Scott James Remnant2e8760b2009-01-26 01:15:21 +0000538 * initctl commands do not support --no-wait yet
539
540 * initctl status with no arguments now shows all jobs.
541
542 * initctl events no longer exists
543
Scott James Remnantfff115a2009-06-17 18:47:22 +01005440.3.10 2009-06-17 "Two minutes to Belgium"
545
546 * Compilation fixes
547
548 * Fixed assertion caused by the post-start or pre-stop scripts
549 exiting after the main process of a respawning job had exited
550 (Bug: #381048)
551
Scott James Remnant5d6466d2007-10-15 01:40:52 +01005520.3.9 2007-10-11 "Highway to the Danger Zone"
553
554 * Fixed crasher caused by starting a job with a no-arguments event.
555
556 * Initialisation order changed so that the control socket is opened
557 and configuration parsed after inherited file descriptors are closed
558 and the console opened. Otherwise if we inherit fewer than the
559 standard three file descriptors (e.g. from OpenVZ) we closed our
560 own control socket, etc. (Bug: #87173)
561
562 * Kill all processes in a supervised process's process group so that
563 we catch looping or sleeping processes that a shell is waiting
564 for. (Bug: #121733)
565
566 * Missing inotify support detected correctly and warning suppressed.
567
568 * Stanza names in configuration may no longer be placed inside quotes.
569
570 * Fix dangling halt and poweroff symlinks when Upstart compiled
571 without --enable-compat=sysv. (Bug: #93356)
572
573 * Fix that --with-included-gettext did not include libintl.a
574 as it should have. (Bug: #117848)
575
576 * Updated hacking requirements to Automake 1.10 and Gettext 0.16.1
577 since this version of Automake makes it easier for package
578 maintainers because it causes us to ship libtool.m4 ourselves.
579
Scott James Remnant7c862ed2007-03-11 19:13:24 +00005800.3.8 2007-03-11 "I had a little drink about an hour ago"
581
582 * Fix an assertion error that occurred whenever a stop event for an
583 instance job was emitted.
584
585 * Correct a bug where calling "stop" from a job without arguments
586 would stop the running job, and attempt to block until it was
587 stopped. This can obviously never happen since it won't stop until
588 stop unblocks.
589
590 * Add "version" and "log-priority" commands to initctl.
591
Scott James Remnant79a3c9a2007-03-09 21:35:31 +00005920.3.7 2007-03-09 "Lines of communication"
593
594 * The "normalexit" stanza has been changed to "normal exit".
595
596 * The "respawn COMMAND" short-cut for specifying both "respawn" and
597 "exec" in the same stanza has been removed. Jobs that previously
598 used syntax such as:
599
600 respawn /sbin/getty 38400 tty1
601
602 Should be changed to use:
603
604 exec /sbin/getty 38400 tty1
605 respawn
606
607 While the shortcut saved a little typing, it caused confusion and
608 hid the fact that "exec" and "script" were both options for
609 respawning services.
610
611 * The "on EVENT" stanza has been removed, change your jobs to use
612 the identical "start on EVENT" instead. This is because the "on"
613 stanza may be useful for other things in future.
614
615 * Stanzas in job definitions may no longer be surrounded by single
616 or double quotes, allowing them to be turned into ordinary
617 tokens by quoting them.
618
619 * Configuration of running jobs is no longer immediately changed
620 when the definition is changed on disk; the job must be stopped
621 first. If the job is an instance job, all instances must be
622 stopped before an instance of the changed job definition will be
623 started.
624
625 This ensures that the post-stop process run when the job is stopped
626 matches the pre-start process run when it was started, and for
627 instance jobs ensures that any locking between them is identical.
628
629 Jobs marked for deletion, or jobs that have not yet replaced
630 another, will not ordinarily show up in the output of initctl
631 "status" or "list" unless addressed by id. They cannot be
632 started or stopped, even when addressed by id.
633
634 * Job definitions may safely omit "exec"/"script"; the job will stay
635 in the running state with no process until it is stopped manually
636 or by an event.
637
638 This allows a service to define hardware configuration; for example
639 the mixer service could restore the ALSA mixer in its pre-start
640 script and save the mixer state in its stop script. "start mixer"
641 would restore the state, "status mixer" would show it was running
642 and "stop mixer" would save the state again and presumably mute it.
643
644 * Sending the SIGPWR signal to init will emit the power-status-changed
645 event. A simple job can hook this event, check the /etc/powerstatus
646 file and take further action.
647
648 * As well as their name, all jobs now also have a unique id exported
649 in the UPSTART_JOB_ID environment variable and viewable with initctl
650 by using the "--show-ids" option to "status" or "list".
651
652 The unique id is changed whenever the job is reloaded from disk, or
653 whenever a new instance is started. "start" and "stop" now default
654 to UPSTART_JOB_ID if no arguments are given (falling back to
655 UPSTART_JOB if that is not present either). This means they act on
656 the current instance of the job, rather than spawning a new instance
657 or stopping all instances.
658
659 "start", "status" and "stop" also accept a new "--by-id" option
660 which makes them expect job ids as arguments instead of job names.
661
662 * The initctl "status" and "list" commands group instances of
663 instance jobs together in their output, rather than repeating them
664 without further clarification. E.g.:
665
666 foo (instance)
667 (start) starting
668 (start) running, process 1000
669 (stop) post-stop, process 1050
670
671 The "stop" command will stop all instances when given the name of
672 an instance job; individual instances can be stopped using "--by-id"
673 after obtaining the id from "status --show-ids".
674
675 * Wildcard patterns of job names to be listed can be given as an
676 argument to the initctl "list" command.
677
678 * Starting and stopping jobs with initctl will now block until the
679 job reaches its goal state, outputting all status changes and
680 process ids until the goal is reached and will also output an error
681 and exit with a non-zero status if the job fails.
682
683 Remember that jobs default to being tasks, so "start" will actually
684 block until the job finishes and returns back to "(stop) waiting".
685 Use the "service" or "respawn" stanza to turn them into services to
686 that they only block until the "(start) running" state is reached.
687
Scott James Remnant4e977172007-02-10 21:24:29 +00006880.3.5 2007-02-10 "Wear flowers in your hair"
689
690 * Serialisation of job state between upstart processes is disabled;
691 though upstart will still re-exec itself when sent the TERM
692 signal, the new copy will not have any of the state of the old.
693 This will be restored in a later release.
694
695 * WARNING: if you have any job declared "console owner" which is
696 run by the "stalled" event, comment out the "start on" stanza
697 before sending the TERM signal -- otherwise the newly started
698 process will start that job, which will kill your running X
699 server.
700
701 * logd and the "console logged" (default) option are currently
702 disabled, pending large-scale changes to the way that this
703 works.
704
705 * Job scripts have been renamed; "start" to "pre-start" and
706 "stop" to "pre-stop".
707
708 * A new "post-start" script has been added, it's run after the
709 main process has been started and the "started" event is not
710 emitted until it finished.
711
712 * A new "pre-stop" script has also been added, it's run when a
713 request or event comes in to stop a job, before the "stopping"
714 event is emitted and before the job is killed. If this restarts
715 the job, it will not be stopped.
716
717 * Job processes now have an UPSTART_JOB environment variable
718 containing the name of the job.
719
720 * initctl start, stop and status will default to using UPSTART_JOB
721 if no arguments are given. Therefore you can just put "stop"
722 or "start" into a job script.
723
724 * Where a job was started or stopped by an event, the processes
725 now have an UPSTART_EVENT environment variable containing the
726 name of the event.
727
728 * Events may now have arguments and environment variables attached,
729 these can be specified with initctl, e.g.
730
731 # initctl emit network-interface-up eth0 -eADDR=00:11:22:33:44:55:66
732
733 * These arguments can be matched in the job by placing them after
734 the event name for the "start on" or "stop on" stanzas:
735
736 start on network-interface-up eth*
737
738 Additional arguments in the event are assumed to match if not
739 specified in the job definition, and wildcards may be used within
740 the job definition as shown above.
741
742 * The arguments are also passed to the script of any job started or
743 stopped by this event as positional arguments, and the environment
744 variables are placed into the environment of the job.
745
746 * The set of events emitted due to a job state change have been
747 completely changed. The new events are as follows:
748
749 started: this is emitted once the job is running and ready, and
750 receives the job name as an argument.
751
752 stopped: this is emitted once the job has been fully stopped. As
753 well as the job name, if the job terminated normally it will have
754 the "ok" argument; otherwise it will have the "failed" argument
755 followed by the name of the script that failed ("running" for the
756 main job) and either an EXIT_STATUS or EXIT_SIGNAL environemtn
757 variable indicating why it failed.
758
759 starting: this is emitted before the job is started (before even
760 the pre-start script is run). Arguments are as "started". The
761 job will not be started until this event has finished.
762
763 stopping: this is emitted before the job is stopped (but after the
764 pre-stop script is run). Arguments are as "stopped". The job will
765 not be stopped until this event has finished.
766
767 These events can be usefully combined as follows.
768
769 If the "hal" job requires "dbus" to be running, and "hal" must be
770 stopped before "dbus" may stop:
771
772 start on started dbus
773 stop on stopping dbus
774
775 If the "tomcat" job believes that it must be running before "apache"
776 can run, and should not be stopped until "apache" has been stopped:
777
778 start on starting apache
779 stop on stopped apache
780
781 * The event named for the job has been completely removed; thus
782 jobs and events no longer share a namespace.
783
784 * Jobs have goals to reach; for a task (the default), the goal is
785 to go from stopped, to started and back to stopped again. This
786 means that when used for the "starting" or "stopping" event, the
787 entire task has to complete before the referenced job can actually
788 be started or stopped.
789
790 Services will normally only want the goal to be to go from stopped
791 to started; thus when used in "starting" in the example above, the
792 referenced job can be started once the service has been started
793 (and not stopped again). A service is defined by specifying either
794 "respawn" or "service" in the definition.
795
796 * The list of exit codes that determine whether the main process
797 failed or succeeded can be specified by the "normalexit"
798 configuration stanza. The arguments to this stanza can be exit
799 codes or signal names, e.g.
800
801 normalexit 1 99 100 INT QUIT
802
803 Zero is implied in the list, unless the job is marked "respawn"
804 since for those jobs, this is the list of exit codes and signals
805 that cause the job to be not respawned.
806
807 * There is no longer a respawning state, or "respawn script". Jobs
808 will instead be stopped and started through the same scripts.
809
810 * Jobs marked with the "instance" stanza can be started multiple
811 times; each time they are started, a new instance is created.
812
813 * If any job whose goal is changed by an event fail to reach their
814 new goal, a further "EVENT-NAME/failed" event will be emitted once
815 the event has finished being handled.
816
817 This can be used to emit, for example, a "path-unmounting" event
818 and to not proceed to "path-unmounted" unless it succeeds.
819
820 * initctl emit will block until the event has been handled; it will
821 also output job status information for any job changed by the event
822 and terminate with an exit status of 1 if any of those jobs failed
823 to reach their new goal.
824
825 * The set of events emitted by the "telinit" compatibility command
826 have been changed. It now only emits a single "runlevel" event,
827 and supplies the new runlevel as an argument to it.
828
829 You should change job files that use:
830
831 start on runlevel-2
832
833 to use the following:
834
835 start on runlevel 2
836
837 This means also that "stop on runlevel" would stop the job on
838 any runlevel change.
839
840 * Neither the "telinit" nor "shutdown" commands now emit a
841 "shutdown" event, in fact, this event has been removed altogether.
842 "shutdown" now simply emits the appropriate runlevel event;
843 the -H and -P arguments set the INIT_HALT variable in the
844 environment of that event, just as it does in sysvinit.
845
846 * Normal output from initctl, etc. is no longer prefixed "initctl:"
847
848 * The "ctrlaltdel" event has been renamed to "control-alt-delete".
849
Scott James Remnantcf64c482007-02-05 23:14:00 +00008500.3.2 2007-02-06 "Could anybody have tampered with your luggage?"
851
852 * Fix leak of inotify file descriptor that could allow any process
853 on the system to remove upstart's watch on its configuration
854 directory.
855
856 * New "emits" configuration stanza, used to list events that are
857 emitted by the job itself. Intended for use by front-ends to
858 draw event graphs and the like.
859
860 * Dropped "depends" configuration stanza and all related code.
861 This will be replaced by the complex state mechanism.
862
863 * Rewritten IPC code to be significantly simpler, with the goal of
864 having a stable interface once we hit the end of this milestone
865 series.
866
867 * Rewritten configuration parser and inotify watch infrastructure
868 to be more maintainable in future.
869
870 * Now supports systems where inotify is disabled.
871
872 * Duplicate configuration stanzas are no longer permitted.
873
874 * Bug fixes, especially concerning malloc failure.
875
Scott James Remnantf642ffa2006-12-13 18:24:22 +00008760.3.1 2006-12-13 "The Gathering"
877
878 * Compilation fixes
879
880 * Bug fixes.
881
882 * Massive improvement to test framework, which should make it much
883 easier to test new features.
884
Scott James Remnantfd029da2006-10-17 19:21:07 +01008850.3.0 2006-10-17
886
887 * Reverted logd behaviour from previous version, it's up to the
888 init scripts to send messages to the console if they wish.
889
890 * Compatibility programs must now be explicitly enabled by using
891 ./configure --enable-compat=sysv
892
893 * "shutdown" and "reboot" are now considered System V compatibility
894 programs, as they emulate the behaviour of those. Dropped some
895 added options to make them fit.
896
897 * All programs given improved --help text.
898
899 * "initctl" rewritten, any sub-command can be run directly by
900 making it a symlink to "initctl" itself.
901
902 * "start", "stop" and "status" are now just symlinks to "initctl";
903 not a separate binary.
904
Scott James Remnant4e58f752006-09-20 06:33:50 +01009050.2.7 2006-09-20
906
907 * logd writes received messages to the console unless "quiet" is
908 on the kernel command-line
909
910 * runaway jobs are now caught when they start, rather than respawn,
911 so stop/start loops are caught
912
913 * Include inotify support for compiling under glibc 2.3
914
Scott James Remnant948ab872006-09-14 10:34:34 +01009150.2.6 2006-09-13
916
917 * Fix major bug on architectures with 64-bit kernel and 32-bit
918 user-land caused by an inconsitency between the behaviour of
919 kernel's compat_sys_waitid() vs. sys_waitid() functions.
920
921 * "halt" now only calls "shutdown -h now"
922
Scott James Remnant760237e2006-09-09 05:38:32 +01009230.2.5 2006-09-09
924
925 * "control-alt-delete" event name changed to "ctrlaltdel".
926
927 * "initctl shutdown EVENT" added that performs the same job as
928 "shutdown" but without all the usual warnings, timings, etc.
929
930 * "logd" has now been written, if installed this is started by init
931 before sending the "startup" call and all jobs with "console logged"
932 (the default) will have their output sent to this daemon. It
933 currently just logs to /var/log/boot.
934
935 * "shutdown -k" implemented.
936
937 * The "shutdown" utility has been changed to generate "system-halt"
938 for "-H", "power-off" for "-P" and just "halt" if only "-h" given.
939
940 * If "shutdown" is run when running under sysvinit, it will now
941 send the appropriate /dev/initctl message to allow upgrades.
942
943 * "telinit S" implemented.
944
945 * Instead of trying to start or stop jobs, "telinit" now just sends
946 "runlevel-X" events.
947
948 * The "telinit" utility now ensures a "shutdown" event is sent
949 before switching to runlevel 0, 1 or 6.
950
951 * If "telinit" is installed and init is called by the super-user,
952 "telinit" is invoked instead.
953
954 * Basic manual pages included.
955
Scott James Remnant7663bfb2006-09-01 19:58:19 +01009560.2.1 2006-09-01
957
958 * Compilation fixes
959
Scott James Remnant12dd7252006-09-01 02:27:04 +01009600.2.0 2006-09-01
961
962 * "shutdown", "reboot", "halt" and "poweroff" utilities provided
963 that match their traditional equivalents.
964
965 * "start", "stop" and "status" utilities provided to start, stop
966 and query the status of jobs respectively.
967
968 * "runlevel" and "telinit" utilities provided for compatibility.
969
970 * "initctl list" will list active jobs.
971
972 * Events vastly simplified to just simple strings.
973
974 * Jobs now generate "jobname/start", "jobname/started",
975 "jobname/stop" and "jobname/stopped" events as they go through
976 state transitions.
977
978 * Services generate a "jobname" event when they are running.
979
980 * Tasks generate a "jobname" event when they have finished.
981
982 * The "shutdown" utility will generate a "shutdown" event followed
983 by one of "maintenance", "reboot", "halt" or "poweroff" or any
984 admin-specified event.
985
986 * "stalled" event generated when no jobs are running or queued.
987
988 * "control-alt-delete" event generated when that key combination
989 is pressed
990
991 * "kbdrequest" event generated when Alt-UpArrow is pressed
992
993 * Runaway respawning services will now be caught.
994
995 * init will re-exec on receipt of the SIGUSR1 signal.
996
Scott James Remnant21679252006-08-25 16:22:13 +02009970.1.1 2006-08-25
998
999 * Minor bug fixes.
1000
Scott James Remnant33e64d02006-08-25 14:44:32 +020010010.1.0 2006-08-24
Scott James Remnant8a0cd072006-05-14 18:28:58 +01001002
1003 * Initial public release.
1004