lkml.org 
[lkml]   [2004]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] Console: fall back to /dev/null when no console is availlable
Looks pretty trivial, but opinions on this subject may vary.
Comments?

Jörn

--
More computing sins are committed in the name of efficiency (without
necessarily achieving it) than for any other single reason - including
blind stupidity.
-- W. A. Wulf

Some userspace applications rely on the assumption that fd's 0, 1 and
2 are always open and function as raw stdin, stdout and stderr,
respectively.

With no console registered, init get's called without those fd's
already open. Arguably, init should know better, handle that case and
fix things before forking other processed. But what about
init=/bin/bash? Ok, bash could be fixed as well, as could...

Instead, this patch opens /dev/null when /dev/console doesn't work.
It swallows all output and doesn't give much input, but programs can
handle that just fine.

Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
---

main.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletion(-)

--- linux-2.6.8cow/init/main.c~console 2004-10-05 20:46:40.000000000 +0200
+++ linux-2.6.8cow/init/main.c 2004-10-05 20:46:08.000000000 +0200
@@ -695,8 +695,11 @@
system_state = SYSTEM_RUNNING;
numa_default_policy();

- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
printk("Warning: unable to open an initial console.\n");
+ if (open("/dev/null", O_RDWR, 0) == 0)
+ printk(" Falling back to /dev/null.\n");
+ }

(void) sys_dup(0);
(void) sys_dup(0);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:06    [W:2.240 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site