From 53f5061c7e823f7ee511023f92b19980b40fdefd Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 14 Mar 2001 09:01:11 +0000 Subject: Fix init so that checking for terminal devices is delayed until the devices are actually used, thereby allowing devfsd based systems to work. This should fix bug #1133 -Erik --- init/init.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'init/init.c') diff --git a/init/init.c b/init/init.c index a0f15b0ff..53e9744c5 100644 --- a/init/init.c +++ b/init/init.c @@ -440,6 +440,12 @@ static pid_t run(char *command, char *terminal, int get_enter) signal(SIGHUP, SIG_DFL); if ((fd = device_open(terminal, O_RDWR)) < 0) { + struct stat statBuf; + if (stat(terminal, &statBuf) != 0) { + message(LOG | CONSOLE, "device '%s' does not exist.\n", + terminal); + exit(1); + } message(LOG | CONSOLE, "Bummer, can't open %s\r\n", terminal); exit(1); } @@ -813,16 +819,8 @@ static void parse_inittab(void) while (a->name != 0) { if (strcmp(a->name, action) == 0) { if (*id != '\0') { - struct stat statBuf; - strcpy(tmpConsole, "/dev/"); strncat(tmpConsole, id, 200); - if (stat(tmpConsole, &statBuf) != 0) { - message(LOG | CONSOLE, - "device '%s' does not exist. Did you read the directions?\n", - tmpConsole); - break; - } id = tmpConsole; } new_initAction(a->action, process, id); -- cgit v1.2.3