diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-03-05 23:36:53 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-04-08 00:54:24 +0200 |
commit | e3e9ecc13566b8ac9f6f9eb4a1afcfc55c6172d3 (patch) | |
tree | 95271483e62309cfe9bd696acc4d2358a2460f32 /daemons | |
parent | 747ae893a63eb6d0501a06f8f675eeb0da8ae560 (diff) |
console-run: Create and settrans /dev/console when not already done.
This patch makes sure /libexec/console-run creates and installs
/dev/console on the first run without considering it a failure if it
didn't exist already.
* daemons/console-run.c (TERMINAL_FIRST_TRY): Change node to
`/dev/console'.
(TERMINAL_SECOND_TRY): Change node to `/tmp/console'.
(open_console): Clear FALLBACK when TRY == 1 and the
`file_set_translator' call suceeded.
Diffstat (limited to 'daemons')
-rw-r--r-- | daemons/console-run.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/daemons/console-run.c b/daemons/console-run.c index 3ab2629a..aaa1159b 100644 --- a/daemons/console-run.c +++ b/daemons/console-run.c @@ -72,17 +72,17 @@ main (int argc, char **argv) } /* Open /dev/console. If it isn't there, or it isn't a terminal, then - create /tmp/console and put the terminal on it. If we get EROFS, - in trying to create /tmp/console then as a last resort, put the - console on /tmp itself. If all fail, we exit. + create /dev/console and put the terminal on it. If we get EROFS, + in trying to create /dev/console then as a last resort, create + /tmp/console. If all fail, we exit. Return nonzero if the vanilla open of /dev/console didn't work. In any case, after the console has been opened, put it on fds 0, 1, 2. */ static int open_console (char **namep) { -#define TERMINAL_FIRST_TRY "/hurd/term\0/tmp/console\0device\0console" -#define TERMINAL_SECOND_TRY "/hurd/term\0/tmp\0device\0console" +#define TERMINAL_FIRST_TRY "/hurd/term\0/dev/console\0device\0console" +#define TERMINAL_SECOND_TRY "/hurd/term\0/tmp/console\0device\0console" mach_port_t term, proc; static char *termname; struct stat st; @@ -183,7 +183,13 @@ open_console (char **namep) if (term != MACH_PORT_NULL) { - error (0, 0, "Using temporary console %s", termname); + if (try == 1) + /* We created /dev/console, started, and installed the + translator on it, so it really isn't a fallback + console. */ + fallback = 0; + else + error (0, 0, "Using temporary console %s", termname); break; } } |