blob: f09fa28f3740722df59662ebf2265714c686fd53 [file] [log] [blame]
=== modified file 'init/main.c'
--- init/main.c 2011-03-16 22:54:56 +0000
+++ init/main.c 2011-08-08 21:09:43 +0000
@@ -173,8 +173,23 @@
* 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 ());
+ if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0) {
+ NihError *err;
+
+ err = nih_error_get ();
+ nih_warn ("%s: %s", _("Unable to initialize console, will try /dev/null"),
+ err->message);
+ nih_free (err);
+
+ if (system_setup_console (CONSOLE_NONE, FALSE) < 0) {
+ err = nih_error_get ();
+ nih_fatal ("%s: %s", _("Unable to initialize console as /dev/null"),
+ err->message);
+ nih_free (err);
+
+ exit (1);
+ }
+ }
/* Set the PATH environment variable */
setenv ("PATH", PATH, TRUE);
@@ -316,8 +331,16 @@
/* Now that the startup is complete, send all further logging output
* to kmsg instead of to the console.
*/
- if (system_setup_console (CONSOLE_NONE, FALSE) < 0)
- nih_free (nih_error_get ());
+ if (system_setup_console (CONSOLE_NONE, FALSE) < 0) {
+ NihError *err;
+
+ err = nih_error_get ();
+ nih_fatal ("%s: %s", _("Unable to setup standard file descriptors"),
+ err->message);
+ nih_free (err);
+
+ exit (1);
+ }
nih_log_set_logger (logger_kmsg);
#endif /* DEBUG */