Only use a login shell when it will run on a console.
diff --git a/init/init.c b/init/init.c
index 6369ef9..e057caa 100644
--- a/init/init.c
+++ b/init/init.c
@@ -124,7 +124,8 @@
#define VT_LOG "/dev/tty5" /* Virtual console */
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
-#define SHELL "-/bin/sh" /* Default shell */
+#define SHELL "/bin/sh" /* Default shell */
+#define LOGIN_SHELL "-" SHELL /* Default login shell */
#define INITTAB "/etc/inittab" /* inittab file location */
#ifndef INIT_SCRIPT
#define INIT_SCRIPT "/etc/init.d/rcS" /* Default sysinit script. */
@@ -435,7 +436,7 @@
termType,
"HOME=/",
"PATH=/usr/bin:/bin:/usr/sbin:/sbin",
- "SHELL=/bin/sh",
+ "SHELL=" SHELL,
"USER=root",
NULL
};
@@ -782,16 +783,16 @@
/* Umount all filesystems on halt/reboot */
new_initAction(SHUTDOWN, "/bin/umount -a -r", console);
/* Askfirst shell on tty1 */
- new_initAction(ASKFIRST, SHELL, console);
+ new_initAction(ASKFIRST, LOGIN_SHELL, console);
/* Askfirst shell on tty2 */
if (secondConsole != NULL)
- new_initAction(ASKFIRST, SHELL, secondConsole);
+ new_initAction(ASKFIRST, LOGIN_SHELL, secondConsole);
/* Askfirst shell on tty3 */
if (thirdConsole != NULL)
- new_initAction(ASKFIRST, SHELL, thirdConsole);
+ new_initAction(ASKFIRST, LOGIN_SHELL, thirdConsole);
/* Askfirst shell on tty4 */
if (fourthConsole != NULL)
- new_initAction(ASKFIRST, SHELL, fourthConsole);
+ new_initAction(ASKFIRST, LOGIN_SHELL, fourthConsole);
/* sysinit */
new_initAction(SYSINIT, INIT_SCRIPT, console);
@@ -944,13 +945,13 @@
!strcmp(argv[1], "-s") || !strcmp(argv[1], "1"))) {
/* Ask first then start a shell on tty2-4 */
if (secondConsole != NULL)
- new_initAction(ASKFIRST, SHELL, secondConsole);
+ new_initAction(ASKFIRST, LOGIN_SHELL, secondConsole);
if (thirdConsole != NULL)
- new_initAction(ASKFIRST, SHELL, thirdConsole);
+ new_initAction(ASKFIRST, LOGIN_SHELL, thirdConsole);
if (fourthConsole != NULL)
- new_initAction(ASKFIRST, SHELL, fourthConsole);
+ new_initAction(ASKFIRST, LOGIN_SHELL, fourthConsole);
/* Start a shell on tty1 */
- new_initAction(RESPAWN, SHELL, console);
+ new_initAction(RESPAWN, LOGIN_SHELL, console);
} else {
/* Not in single user mode -- see what inittab says */