Comment 36 for bug 876626

Revision history for this message
Scott James Remnant (scott) wrote :

-c1326 doesn't change the console handling, it merely changed the error case:

- if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0)
+ if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0) {

The Plymouth-safe console behavior was never committed upstream, but was part of the Ubuntu delta applied to 0.6.5-5, this patch has apparently been dropped:

http://launchpadlibrarian.net/41179455/upstart_0.6.5-4_0.6.5-5.diff.gz

- /* Set the standard file descriptors to the ordinary console device,
- * resetting it to sane defaults unless we're inheriting from another
- * init process which we know left it in a sane state.
- */
- if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0)
- nih_free (nih_error_get ());

This was never merged upstream because I'm not Lennart, and I don't go around saying things like "all relevant distributions use Plymouth to set up the system console" :p Something has to set up the console correctly and other Upstart users (e.g. Chrome OS) don't even have an initramfs or initrd so need init to do that, as the first thing being run.

The correct upstream fix obviously would be to conditionally set up the system console in some manner, dependent on whether or not it's already "owned" by a running process or whether init is truly the first process to be run.