From dc3ea949544090f91a24b05c5fde0bd9ab87f2ce Mon Sep 17 00:00:00 2001 From: Michel Stam Date: Tue, 4 Nov 2014 17:40:16 +0100 Subject: procd: Make askconsole work again when no tty is specified in inittab Consider: ::askconsole:/bin/ash --login askconsole( ) checks for the existance of the tty, but if none is specified it will skip the remainder of the function. This means fork_worker( ) is never called and no process is spawned. This would leave routers without an initial console. Signed-off-by: Michel Stam --- inittab.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/inittab.c b/inittab.c index d7bb35b..be18482 100644 --- a/inittab.c +++ b/inittab.c @@ -176,18 +176,23 @@ static void askconsole(struct init_action *a) split = strchr(tty, ','); if (split != NULL) *split = '\0'; - } - if (!dev_exist(tty)) { - DEBUG(4, "skipping %s\n", tty); - return; + if (!dev_exist(tty)) { + DEBUG(4, "skipping %s\n", tty); + return; + } + + console = strdup(tty); + a->id = strdup(tty); + } + else { + console = NULL; + a->id = NULL; } - console = strdup(tty); a->tout.cb = respawn; for (i = MAX_ARGS - 1; i >= 1; i--) a->argv[i] = a->argv[i - 1]; - a->id = strdup(tty); a->argv[0] = ask; a->respawn = 500; -- cgit v1.2.3