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