blob: 7726e637a99c38e77d747e3475d685a9a0745ea1 [file] [log] [blame]
Scott James Remnantb3338202009-06-23 01:02:58 +010010.6.0 xxxx-xx-xx
2
Scott James Remnantcf2e8332009-07-06 20:32:07 +01003 * The licence for Upstart has been changed back to version 2 of the
4 GNU GPL.
5
6 * Configuration paths have changed. Global configuration now
7 resides in "/etc/init.conf" while jobs are now configured in
8 "/etc/init"
9
10 * The D-Bus interface remains unstable, to reflect this the current
11 interface name has changed to "com.ubuntu.Upstart0_6" and the
12 name of the job and instance interfaces have changed to match.
13
14 * The "EmitEvent" D-Bus method gains a wait argument, when given
15 as TRUE (the recommended setting) the method call will be blocked
16 until all effects of the event have finished. When FALSE the
17 method call will return once the event has been queued.
18
19 * The "Start", "Stop" and "Restart" D-Bus methods of jobs and
20 instances gain a similar wait argument.
21
22 * The Upstart D-Bus object now has "version" and "log_priority"
23 properties. The former is to obtain the version of the init daemon,
24 the latter allows you to obtain and change the logging priority.
25
26 * Job D-Bus objects now have "name", "description", "author" and
27 "version" properties to obtain the job name and the contents of
28 the equivalent job file fields for the others.
29
30 * Instance D-Bus objects now have "name", "goal", "state" and
31 "processes" properties to obtain the instance name, goal, state
32 and list of running processes and their pids respectively.
33
34 * The default D-Bus security policy now permits use of the "Get"
35 methods by all users, including obtaining values of properties.
36
37 * initctl has been rewritten with functionality more along the
38 lines of Upstart 0.3.x than before; since many distributions are
39 still shipping 0.3.x the summary of changes for the tool reflects
40 both changes from 0.3.x and 0.5.x
41
42 * The global "-p"/"--pid" argument has been dropped, since
43 communication is over D-Bus. New "--system" and "--dest" arguments
44 have been added to force communication over the system bus, and
45 specify the destination, instead of using the private socket.
46
47 * The "-i"/"--id" and "--show-ids" options to commands have been
48 dropped since jobs no longer have ids.
49
50 * Since instances may now have names, these will be displayed in
51 brackets after the job name when one is present. The output of
52 the goal and state are now expressed as "start/running" instead
53 of "(start) running" to disambiguate.
54
55 * initctl "start" and "stop" now only output the final state of
56 the job, not intermediate states it passes through. When called
57 with "--no-wait", the commands now output a status before
58 returning (which may not be the final status).
59
60 * initctl "start", "stop" and "status" now only accept a single
61 job name. Further arguments are taken as KEY=VALUE environment
62 variables to pass to the job, replacing the previous "-e" option.
63
64 * There is a new initctl "restart" command, with matching
65 /sbin/restart symlink. This is the atomic equivalent of calling
66 "stop" and "start" with the exception that a stopped job will
67 not be started again.
68
69 * In keeping with the newer instance model, instance jobs are now
70 output on separate lines with their full names rather than
71 indented under a "master" instance.
72
73 * initctl "status" will exit non-zero if the job name was not
74 found. (Bug: #328323)
75
76 * initctl "status" now outputs information for multi-instance
77 jobs. (Bug: #331407)
78
79 * initctl "list" no longer accepts a pattern, use grep. Output
80 is no longer sorted.
81
82 * initctl "emit" no longer outputs changes that occur as a result
83 of the event.
84
85 * When initctl "emit" is called with "--no-wait", it will return
86 immediately. (Bug: #324890)
87
88 * initctl "emit" now only accepts a single event name. Further
89 arguments are taken as KEY=VALUE environment for the event,
90 replacing the previous "-e" option.
91
92 * initctl "jobs" and "events" have been dropped.
93
94 * initctl "log-priority" may be called without arguments, in
95 which case it will output the current priority. (Bug: #280529)
96
97 * initctl "reload" has been renamed to "reload-configuration"
98 to avoid confusion with reloading a job's configuration.
99
Scott James Remnant07b32242009-07-07 10:49:43 +0100100 * initctl(8) man page updated. (Bug: #285753)
101
Scott James Remnantff87eaf2009-07-08 18:38:25 +0100102 * runlevel no longer accepts the --set and --reboot arguments,
Scott James Remnantf24e55d2009-07-08 19:58:37 +0100103 instead telinit and shutdown write these records into utmp and wtmp.
Scott James Remnantff87eaf2009-07-08 18:38:25 +0100104
105 * runlevel(7) man page added to describe the runlevel event, and
106 the implementation of runlevels and System V compatibility in
107 Upstart. (Bug: #60429)
108
Scott James Remnant3aac7132009-07-08 19:02:56 +0100109 * telinit will no longer silently ignore the "a", "b" or "c"
110 runlevels.
111
112 * telinit will no longer silently ignore the "-t" argument.
113
114 * telinit now accepts the previously ignored "-e" argument, passing
115 the environment variables given along with the runlevel event.
116
117 * telinit now officially accepts the "q"/"Q" and "u"/"U" arguments,
118 the former will reload the Upstart configuration while the latter
119 will re-execute Upstart.
120
Scott James Remnant461578a2009-07-08 19:30:12 +0100121 * reboot no longer silently ignores the "-t" option.
122
123 * reboot now silently ignores the "-n", "-i" and "-h" options; it
124 will no longer sync your disks, down your network interfaces or
125 spin down your hard drives. This functionality is all handled
126 by the kernel on a modern system. (Bug: #92685)
127
128 * reboot now writes a "shutdown" record to /var/log/wtmp, this means
129 that the "-w" option is honoured with its original intent. We
130 still silently ignore the "-d" option.
131
Scott James Remnantf24e55d2009-07-08 19:58:37 +0100132 * shutdown message generation fixed to be more easily translatable.
133 (Bug: #102565)
134
Scott James Remnantb3338202009-06-23 01:02:58 +01001350.5.3 2009-06-22 "Britain's Flag Carrier"
136
137 * Fixed segfault when initctl status called with arguments.
138 (Bug: #388753)
139
140 * Fixed segfault when initctl log-priority called with no argument.
141 (Bug: #280529)
142
143 * Fixed shutdown to pass $INIT_HALT variable as last argument, not
144 as first. (Bug: #303574)
145
146 * Added temporary support for "telinit u" until we have true re-exec
147 support. This will be replaced by an initctl command in future.
148 (Bug: #388742)
149
150 * Corrected formatting of initctl(8) manpage. (Bug: #388745)
151
Scott James Remnant4ef6e282009-06-17 19:02:13 +01001520.5.2 2009-06-17 "Something, something, something, D-Bus"
153
154 * The licence for Upstart has been updated to GNU GPL v3.
155
156 * Overhaul of the automatically generated D-Bus bindings code,
157 fixing many issues with memory leaks, inconsistent return values
158 and loss of method returns after the method has taken place.
159
160 * D-Bus 1.2.4 is now required, and must be patched to fix
161 https://bugs.freedesktop.org/show_bug.cgi?id=22316
162
163 * D-Bus Job objects now have "name", "description", "author"
164 and "version" properties.
165
166 * D-Bus Instance object now have "name", "goal" and "state"
167 properties.
168
169 * initctl now obtains the name properties for display instead of
170 printing the mangled object path component. (Bug: #299290)
171
172 * D-Bus configuration updated now that the daemon is fixed to be
173 deny-by-default, and updated to avoid bare "send_interface"
174 stanzas. (Bug: #323021)
175
176 * Fixed assertion caused by the post-start or pre-stop scripts
177 exiting after the main process of a respawning job had exited
178 (Bug: #381048)
179
180 * The /proc filesystem need not be mounted if the "oom_adj"
181 configuration stanza is not used. (Bug: #259801)
182
183 * Overly large values to configuration stanzas are now caught
184 and rejected. (Bug: #340134)
185
186 * The --enable-compiler-warnings configure option has been
187 extended to add -Wextra, but turns off a few of the more extreme
188 warnings
189
190 * GNU C Library v2.4 (or backported inotify support) is required
191
192 * pkg-config 0.22 is now required, it probably was anyway but we
193 now explicitly check for it.
194
195 * Dependency on Python for the D-Bus binding tool has been dropped
196 and replaced with a dependency on expat 2.0.0
Scott James Remnant619905b2009-01-29 06:23:08 +0000197
1980.5.1 2009-01-29 "Unexpected item in bagging area"
199
200 * Major rewrite of the memory allocator used by Upstart; the
201 old allocator had several limitations and a few issues.
202 I must stress that none of the issues were known to affect
203 Upstart itself, however it pays to be prudent.
204
205 * An issue where an object in a linked list would be freed after
206 the linked list was freed was fixed. Upstart had some twisty
207 code logic to work around it, which has now been dropped.
208
209 * An issue where a string could fail to be appended in an OOM
210 situation was fixed; if Upstart is affected, this could cause
211 D-Bus Introspection data to be corrupted.
212
213 * An issue where multiple socket watches being freed could lead
214 to bad memory access has been fixed; Upstart 0.5.0 included a
215 temporary fix for the D-Bus connection handling, this replaces
216 that with a proper fix that also corrects the same problem for
217 timers and other main loop watches that Upstart was not believed
218 to be affected by.
219
220 * Compiler warnings when compiling the test suite with -O1 and
221 above have been fixed where found.
222
223 * A race condition in the test cases for a process stopping with
224 SIGSTOP has been fixed, this could sometimes cause this test
225 to hang.
226
Scott James Remnant19580e42009-01-26 01:16:57 +00002270.5.0 2008-08-12 "One of those deaf-mutes"
Scott James Remnant2e8760b2009-01-26 01:15:21 +0000228
229 * The relationship between job definitions and their running
230 instances has been overhauled completely. Jobs may have
231 zero or more instances, each one uniquely identified by
232 their instance name which is set by expanding the argument
233 to the "instance" stanza against the instance's environment.
234
235 For example, a job with "instance $TTY" in its definition
236 will have new instances created when started with TTY=tty1
237 and TTY=tty2, but starting again with TTY=tty1 will fail if
238 that instance is already running.
239
240 * The default job configuration remains to be a singleton,
241 however this is now accomplished simply by having the
242 default for the instance stanza set to a static string.
243
244 * Job events now include the instance name in a new $INSTANCE
245 variable, and will always have $UPSTART_INSTANCE set in the
246 environment of their processes.
247
248 * Jobs may export environment from themselves into the job
249 events using the new "export" stanza.
250
251 * Events no longer have both arguments and environment,
252 instead the order the environment is specified in is
253 remembered and is used when matching.
254
255 * The "start on" and "stop on" stanzas may now only be
256 specified once, multiple events should be joined with the
257 new "or" operator. A new "and" operator exists as well, and
258 parentheses are permitted, allowing arbitrarily complicated
259 expression matches.
260
261 * All environment from the matched start events is placed in
262 the job, with the list of matched events placed in the
263 $UPSTART_EVENTS variable, replacing the previous singular
264 $UPSTART_EVENT variable.
265
266 * The matches for the "stop on" stanza may refer to variables
267 from the job environment, which comes from the "start on"
268 stanza.
269
270 For example:
271 start on started apache or started httpd
272 stop on stopping $JOB
273
274 * Job environment from the start command or events is
275 available to all scripts, including "pre-stop" and "post-stop".
276
277 * Environment from the matched stop events is only available
278 to the "pre-stop" script, with the list of matched events
279 placed in the $UPSTART_STOP_EVENTS variable so that the list
280 of events that started the job is still available.
281
282 * Environment is no longer lost after a respawn.
283
284 * Environment from the kernel or initramfs may be included in
285 a job by use of the "env NAME" stanza without a value set.
286
287 * The "started" event is no longer emitted if the pre-stop
288 script restarts the job, since the "stopping" event was
289 never emitted.
290
291 * By default, jobs now have the most suitable settings for
292 a daemon process that would match what they would have had
293 by calling daemon(). In particular, this means that the
294 previous "service" stanza is now the default and tasks need
295 to specify a "task" stanza. It also means that if the job
296 really wishes to be a session leader (e.g. getty), it must
297 specify the new "session leader" stanza.
298
299 * Processes that fork once may be supervised with the new
300 "expect fork" stanza, processes that fork twice (most
301 daemons) may be supervised with the new "expect daemon"
302 stanza and processes that do not fork may signal readiness
303 by SIGSTOP with the new "expect stop" stanza.
304
305 * The "pid file", "pid timeout" and "daemon" stanzas have been
306 removed in favour of the new functionality.
307
308 * "respawn" now works for tasks, this will repeat the task
309 until it finishes with a zero exit status or any other
310 specified by "normal exit".
311
312 * "respawn limit" now only affects automatic respawns, not
313 those done by command.
314
315 * If the main process fails to start due to exec() error, or
316 other process setup error, it will not be respawned.
317
318 * "respawn limit" may be "unlimited".
319
320 * The "stalled" event has been removed.
321
322 * "logd" was not maintained, and did not function correctly,
323 so has been removed from the source. The "console logged"
324 stanza has also been removed.
325
326 * New "oom" stanza allows adjustment of the OOM killer
327 priority of the process and may be "never" to inhibit it.
328
329 * The configuration directory has now changed to
330 /etc/init/jobs.d
331
332 * Configuration is still reloaded with inotify, but may be
Scott James Remnant19580e42009-01-26 01:16:57 +0000333 forced by sending init a HUP signal or with "initctl reload".
Scott James Remnant2e8760b2009-01-26 01:15:21 +0000334
335 * Support for the STOP, CONT and TERM signals has been
336 removed.
337
338 * libupstart and the native IPC mechanism has been removed,
339 communication is now via D-Bus which is a new dependency.
340
341 * The dependency on D-Bus introduces build-dependencies on
342 pkg-config and Python.
343
344 * The minimal recommended kernel version is now 2.6.24
345
346 * The compat directory has been removed, the utilities are now
347 considered part of Upstart.
348
Scott James Remnant19580e42009-01-26 01:16:57 +0000349 * initctl jobs has been dropped.
350
Scott James Remnant2e8760b2009-01-26 01:15:21 +0000351 * initctl commands do not support --no-wait yet
352
353 * initctl status with no arguments now shows all jobs.
354
355 * initctl events no longer exists
356
Scott James Remnantfff115a2009-06-17 18:47:22 +01003570.3.10 2009-06-17 "Two minutes to Belgium"
358
359 * Compilation fixes
360
361 * Fixed assertion caused by the post-start or pre-stop scripts
362 exiting after the main process of a respawning job had exited
363 (Bug: #381048)
364
Scott James Remnant5d6466d2007-10-15 01:40:52 +01003650.3.9 2007-10-11 "Highway to the Danger Zone"
366
367 * Fixed crasher caused by starting a job with a no-arguments event.
368
369 * Initialisation order changed so that the control socket is opened
370 and configuration parsed after inherited file descriptors are closed
371 and the console opened. Otherwise if we inherit fewer than the
372 standard three file descriptors (e.g. from OpenVZ) we closed our
373 own control socket, etc. (Bug: #87173)
374
375 * Kill all processes in a supervised process's process group so that
376 we catch looping or sleeping processes that a shell is waiting
377 for. (Bug: #121733)
378
379 * Missing inotify support detected correctly and warning suppressed.
380
381 * Stanza names in configuration may no longer be placed inside quotes.
382
383 * Fix dangling halt and poweroff symlinks when Upstart compiled
384 without --enable-compat=sysv. (Bug: #93356)
385
386 * Fix that --with-included-gettext did not include libintl.a
387 as it should have. (Bug: #117848)
388
389 * Updated hacking requirements to Automake 1.10 and Gettext 0.16.1
390 since this version of Automake makes it easier for package
391 maintainers because it causes us to ship libtool.m4 ourselves.
392
Scott James Remnant7c862ed2007-03-11 19:13:24 +00003930.3.8 2007-03-11 "I had a little drink about an hour ago"
394
395 * Fix an assertion error that occurred whenever a stop event for an
396 instance job was emitted.
397
398 * Correct a bug where calling "stop" from a job without arguments
399 would stop the running job, and attempt to block until it was
400 stopped. This can obviously never happen since it won't stop until
401 stop unblocks.
402
403 * Add "version" and "log-priority" commands to initctl.
404
Scott James Remnant79a3c9a2007-03-09 21:35:31 +00004050.3.7 2007-03-09 "Lines of communication"
406
407 * The "normalexit" stanza has been changed to "normal exit".
408
409 * The "respawn COMMAND" short-cut for specifying both "respawn" and
410 "exec" in the same stanza has been removed. Jobs that previously
411 used syntax such as:
412
413 respawn /sbin/getty 38400 tty1
414
415 Should be changed to use:
416
417 exec /sbin/getty 38400 tty1
418 respawn
419
420 While the shortcut saved a little typing, it caused confusion and
421 hid the fact that "exec" and "script" were both options for
422 respawning services.
423
424 * The "on EVENT" stanza has been removed, change your jobs to use
425 the identical "start on EVENT" instead. This is because the "on"
426 stanza may be useful for other things in future.
427
428 * Stanzas in job definitions may no longer be surrounded by single
429 or double quotes, allowing them to be turned into ordinary
430 tokens by quoting them.
431
432 * Configuration of running jobs is no longer immediately changed
433 when the definition is changed on disk; the job must be stopped
434 first. If the job is an instance job, all instances must be
435 stopped before an instance of the changed job definition will be
436 started.
437
438 This ensures that the post-stop process run when the job is stopped
439 matches the pre-start process run when it was started, and for
440 instance jobs ensures that any locking between them is identical.
441
442 Jobs marked for deletion, or jobs that have not yet replaced
443 another, will not ordinarily show up in the output of initctl
444 "status" or "list" unless addressed by id. They cannot be
445 started or stopped, even when addressed by id.
446
447 * Job definitions may safely omit "exec"/"script"; the job will stay
448 in the running state with no process until it is stopped manually
449 or by an event.
450
451 This allows a service to define hardware configuration; for example
452 the mixer service could restore the ALSA mixer in its pre-start
453 script and save the mixer state in its stop script. "start mixer"
454 would restore the state, "status mixer" would show it was running
455 and "stop mixer" would save the state again and presumably mute it.
456
457 * Sending the SIGPWR signal to init will emit the power-status-changed
458 event. A simple job can hook this event, check the /etc/powerstatus
459 file and take further action.
460
461 * As well as their name, all jobs now also have a unique id exported
462 in the UPSTART_JOB_ID environment variable and viewable with initctl
463 by using the "--show-ids" option to "status" or "list".
464
465 The unique id is changed whenever the job is reloaded from disk, or
466 whenever a new instance is started. "start" and "stop" now default
467 to UPSTART_JOB_ID if no arguments are given (falling back to
468 UPSTART_JOB if that is not present either). This means they act on
469 the current instance of the job, rather than spawning a new instance
470 or stopping all instances.
471
472 "start", "status" and "stop" also accept a new "--by-id" option
473 which makes them expect job ids as arguments instead of job names.
474
475 * The initctl "status" and "list" commands group instances of
476 instance jobs together in their output, rather than repeating them
477 without further clarification. E.g.:
478
479 foo (instance)
480 (start) starting
481 (start) running, process 1000
482 (stop) post-stop, process 1050
483
484 The "stop" command will stop all instances when given the name of
485 an instance job; individual instances can be stopped using "--by-id"
486 after obtaining the id from "status --show-ids".
487
488 * Wildcard patterns of job names to be listed can be given as an
489 argument to the initctl "list" command.
490
491 * Starting and stopping jobs with initctl will now block until the
492 job reaches its goal state, outputting all status changes and
493 process ids until the goal is reached and will also output an error
494 and exit with a non-zero status if the job fails.
495
496 Remember that jobs default to being tasks, so "start" will actually
497 block until the job finishes and returns back to "(stop) waiting".
498 Use the "service" or "respawn" stanza to turn them into services to
499 that they only block until the "(start) running" state is reached.
500
Scott James Remnant4e977172007-02-10 21:24:29 +00005010.3.5 2007-02-10 "Wear flowers in your hair"
502
503 * Serialisation of job state between upstart processes is disabled;
504 though upstart will still re-exec itself when sent the TERM
505 signal, the new copy will not have any of the state of the old.
506 This will be restored in a later release.
507
508 * WARNING: if you have any job declared "console owner" which is
509 run by the "stalled" event, comment out the "start on" stanza
510 before sending the TERM signal -- otherwise the newly started
511 process will start that job, which will kill your running X
512 server.
513
514 * logd and the "console logged" (default) option are currently
515 disabled, pending large-scale changes to the way that this
516 works.
517
518 * Job scripts have been renamed; "start" to "pre-start" and
519 "stop" to "pre-stop".
520
521 * A new "post-start" script has been added, it's run after the
522 main process has been started and the "started" event is not
523 emitted until it finished.
524
525 * A new "pre-stop" script has also been added, it's run when a
526 request or event comes in to stop a job, before the "stopping"
527 event is emitted and before the job is killed. If this restarts
528 the job, it will not be stopped.
529
530 * Job processes now have an UPSTART_JOB environment variable
531 containing the name of the job.
532
533 * initctl start, stop and status will default to using UPSTART_JOB
534 if no arguments are given. Therefore you can just put "stop"
535 or "start" into a job script.
536
537 * Where a job was started or stopped by an event, the processes
538 now have an UPSTART_EVENT environment variable containing the
539 name of the event.
540
541 * Events may now have arguments and environment variables attached,
542 these can be specified with initctl, e.g.
543
544 # initctl emit network-interface-up eth0 -eADDR=00:11:22:33:44:55:66
545
546 * These arguments can be matched in the job by placing them after
547 the event name for the "start on" or "stop on" stanzas:
548
549 start on network-interface-up eth*
550
551 Additional arguments in the event are assumed to match if not
552 specified in the job definition, and wildcards may be used within
553 the job definition as shown above.
554
555 * The arguments are also passed to the script of any job started or
556 stopped by this event as positional arguments, and the environment
557 variables are placed into the environment of the job.
558
559 * The set of events emitted due to a job state change have been
560 completely changed. The new events are as follows:
561
562 started: this is emitted once the job is running and ready, and
563 receives the job name as an argument.
564
565 stopped: this is emitted once the job has been fully stopped. As
566 well as the job name, if the job terminated normally it will have
567 the "ok" argument; otherwise it will have the "failed" argument
568 followed by the name of the script that failed ("running" for the
569 main job) and either an EXIT_STATUS or EXIT_SIGNAL environemtn
570 variable indicating why it failed.
571
572 starting: this is emitted before the job is started (before even
573 the pre-start script is run). Arguments are as "started". The
574 job will not be started until this event has finished.
575
576 stopping: this is emitted before the job is stopped (but after the
577 pre-stop script is run). Arguments are as "stopped". The job will
578 not be stopped until this event has finished.
579
580 These events can be usefully combined as follows.
581
582 If the "hal" job requires "dbus" to be running, and "hal" must be
583 stopped before "dbus" may stop:
584
585 start on started dbus
586 stop on stopping dbus
587
588 If the "tomcat" job believes that it must be running before "apache"
589 can run, and should not be stopped until "apache" has been stopped:
590
591 start on starting apache
592 stop on stopped apache
593
594 * The event named for the job has been completely removed; thus
595 jobs and events no longer share a namespace.
596
597 * Jobs have goals to reach; for a task (the default), the goal is
598 to go from stopped, to started and back to stopped again. This
599 means that when used for the "starting" or "stopping" event, the
600 entire task has to complete before the referenced job can actually
601 be started or stopped.
602
603 Services will normally only want the goal to be to go from stopped
604 to started; thus when used in "starting" in the example above, the
605 referenced job can be started once the service has been started
606 (and not stopped again). A service is defined by specifying either
607 "respawn" or "service" in the definition.
608
609 * The list of exit codes that determine whether the main process
610 failed or succeeded can be specified by the "normalexit"
611 configuration stanza. The arguments to this stanza can be exit
612 codes or signal names, e.g.
613
614 normalexit 1 99 100 INT QUIT
615
616 Zero is implied in the list, unless the job is marked "respawn"
617 since for those jobs, this is the list of exit codes and signals
618 that cause the job to be not respawned.
619
620 * There is no longer a respawning state, or "respawn script". Jobs
621 will instead be stopped and started through the same scripts.
622
623 * Jobs marked with the "instance" stanza can be started multiple
624 times; each time they are started, a new instance is created.
625
626 * If any job whose goal is changed by an event fail to reach their
627 new goal, a further "EVENT-NAME/failed" event will be emitted once
628 the event has finished being handled.
629
630 This can be used to emit, for example, a "path-unmounting" event
631 and to not proceed to "path-unmounted" unless it succeeds.
632
633 * initctl emit will block until the event has been handled; it will
634 also output job status information for any job changed by the event
635 and terminate with an exit status of 1 if any of those jobs failed
636 to reach their new goal.
637
638 * The set of events emitted by the "telinit" compatibility command
639 have been changed. It now only emits a single "runlevel" event,
640 and supplies the new runlevel as an argument to it.
641
642 You should change job files that use:
643
644 start on runlevel-2
645
646 to use the following:
647
648 start on runlevel 2
649
650 This means also that "stop on runlevel" would stop the job on
651 any runlevel change.
652
653 * Neither the "telinit" nor "shutdown" commands now emit a
654 "shutdown" event, in fact, this event has been removed altogether.
655 "shutdown" now simply emits the appropriate runlevel event;
656 the -H and -P arguments set the INIT_HALT variable in the
657 environment of that event, just as it does in sysvinit.
658
659 * Normal output from initctl, etc. is no longer prefixed "initctl:"
660
661 * The "ctrlaltdel" event has been renamed to "control-alt-delete".
662
Scott James Remnantcf64c482007-02-05 23:14:00 +00006630.3.2 2007-02-06 "Could anybody have tampered with your luggage?"
664
665 * Fix leak of inotify file descriptor that could allow any process
666 on the system to remove upstart's watch on its configuration
667 directory.
668
669 * New "emits" configuration stanza, used to list events that are
670 emitted by the job itself. Intended for use by front-ends to
671 draw event graphs and the like.
672
673 * Dropped "depends" configuration stanza and all related code.
674 This will be replaced by the complex state mechanism.
675
676 * Rewritten IPC code to be significantly simpler, with the goal of
677 having a stable interface once we hit the end of this milestone
678 series.
679
680 * Rewritten configuration parser and inotify watch infrastructure
681 to be more maintainable in future.
682
683 * Now supports systems where inotify is disabled.
684
685 * Duplicate configuration stanzas are no longer permitted.
686
687 * Bug fixes, especially concerning malloc failure.
688
Scott James Remnantf642ffa2006-12-13 18:24:22 +00006890.3.1 2006-12-13 "The Gathering"
690
691 * Compilation fixes
692
693 * Bug fixes.
694
695 * Massive improvement to test framework, which should make it much
696 easier to test new features.
697
Scott James Remnantfd029da2006-10-17 19:21:07 +01006980.3.0 2006-10-17
699
700 * Reverted logd behaviour from previous version, it's up to the
701 init scripts to send messages to the console if they wish.
702
703 * Compatibility programs must now be explicitly enabled by using
704 ./configure --enable-compat=sysv
705
706 * "shutdown" and "reboot" are now considered System V compatibility
707 programs, as they emulate the behaviour of those. Dropped some
708 added options to make them fit.
709
710 * All programs given improved --help text.
711
712 * "initctl" rewritten, any sub-command can be run directly by
713 making it a symlink to "initctl" itself.
714
715 * "start", "stop" and "status" are now just symlinks to "initctl";
716 not a separate binary.
717
Scott James Remnant4e58f752006-09-20 06:33:50 +01007180.2.7 2006-09-20
719
720 * logd writes received messages to the console unless "quiet" is
721 on the kernel command-line
722
723 * runaway jobs are now caught when they start, rather than respawn,
724 so stop/start loops are caught
725
726 * Include inotify support for compiling under glibc 2.3
727
Scott James Remnant948ab872006-09-14 10:34:34 +01007280.2.6 2006-09-13
729
730 * Fix major bug on architectures with 64-bit kernel and 32-bit
731 user-land caused by an inconsitency between the behaviour of
732 kernel's compat_sys_waitid() vs. sys_waitid() functions.
733
734 * "halt" now only calls "shutdown -h now"
735
Scott James Remnant760237e2006-09-09 05:38:32 +01007360.2.5 2006-09-09
737
738 * "control-alt-delete" event name changed to "ctrlaltdel".
739
740 * "initctl shutdown EVENT" added that performs the same job as
741 "shutdown" but without all the usual warnings, timings, etc.
742
743 * "logd" has now been written, if installed this is started by init
744 before sending the "startup" call and all jobs with "console logged"
745 (the default) will have their output sent to this daemon. It
746 currently just logs to /var/log/boot.
747
748 * "shutdown -k" implemented.
749
750 * The "shutdown" utility has been changed to generate "system-halt"
751 for "-H", "power-off" for "-P" and just "halt" if only "-h" given.
752
753 * If "shutdown" is run when running under sysvinit, it will now
754 send the appropriate /dev/initctl message to allow upgrades.
755
756 * "telinit S" implemented.
757
758 * Instead of trying to start or stop jobs, "telinit" now just sends
759 "runlevel-X" events.
760
761 * The "telinit" utility now ensures a "shutdown" event is sent
762 before switching to runlevel 0, 1 or 6.
763
764 * If "telinit" is installed and init is called by the super-user,
765 "telinit" is invoked instead.
766
767 * Basic manual pages included.
768
Scott James Remnant7663bfb2006-09-01 19:58:19 +01007690.2.1 2006-09-01
770
771 * Compilation fixes
772
Scott James Remnant12dd7252006-09-01 02:27:04 +01007730.2.0 2006-09-01
774
775 * "shutdown", "reboot", "halt" and "poweroff" utilities provided
776 that match their traditional equivalents.
777
778 * "start", "stop" and "status" utilities provided to start, stop
779 and query the status of jobs respectively.
780
781 * "runlevel" and "telinit" utilities provided for compatibility.
782
783 * "initctl list" will list active jobs.
784
785 * Events vastly simplified to just simple strings.
786
787 * Jobs now generate "jobname/start", "jobname/started",
788 "jobname/stop" and "jobname/stopped" events as they go through
789 state transitions.
790
791 * Services generate a "jobname" event when they are running.
792
793 * Tasks generate a "jobname" event when they have finished.
794
795 * The "shutdown" utility will generate a "shutdown" event followed
796 by one of "maintenance", "reboot", "halt" or "poweroff" or any
797 admin-specified event.
798
799 * "stalled" event generated when no jobs are running or queued.
800
801 * "control-alt-delete" event generated when that key combination
802 is pressed
803
804 * "kbdrequest" event generated when Alt-UpArrow is pressed
805
806 * Runaway respawning services will now be caught.
807
808 * init will re-exec on receipt of the SIGUSR1 signal.
809
Scott James Remnant21679252006-08-25 16:22:13 +02008100.1.1 2006-08-25
811
812 * Minor bug fixes.
813
Scott James Remnant33e64d02006-08-25 14:44:32 +02008140.1.0 2006-08-24
Scott James Remnant8a0cd072006-05-14 18:28:58 +0100815
816 * Initial public release.
817