chiark / gitweb /
Resolve /dev/console to the active tty instead of just "tty0"
authorOlivier Brunel <jjk@jjacky.com>
Fri, 20 Sep 2013 20:18:28 +0000 (22:18 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 14 Nov 2013 04:22:30 +0000 (23:22 -0500)
When resolving /dev/console one would often get "tty0" meaning the active VT.
Resolving to the actual tty (e.g. "tty1") will notably help on boot when
determining whether or not PID1 can output to the console.

src/shared/util.c

index 838885a464c3ae0964193e818cc38d005d992637..b77d010d2d5801a60da5e1492c5acadf6b2ae00b 100644 (file)
@@ -3700,6 +3700,16 @@ char *resolve_dev_console(char **active) {
         else
                 tty = *active;
 
+        if (streq(tty, "tty0")) {
+                char *tmp;
+
+                /* Get the active VC (e.g. tty1) */
+                if (read_one_line_file("/sys/class/tty/tty0/active", &tmp) >= 0) {
+                        free(*active);
+                        tty = *active = tmp;
+                }
+        }
+
         return tty;
 }