[systemd-devel] [PATCH 1/3] Resolve /dev/console to the active tty instead of just "tty0"

Olivier Brunel jjk at jjacky.com
Fri Sep 20 13:18:28 PDT 2013


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 | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/shared/util.c b/src/shared/util.c
index 9a075fa..391bc1d 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -3621,6 +3621,16 @@ char *resolve_dev_console(char **active) {
         else
                 tty = *active;
 
+        if (streq(tty, "tty0")) {
+                free(*active);
+
+                /* Get the active VC (e.g. tty1) */
+                if (read_one_line_file("/sys/class/tty/tty0/active", active) < 0)
+                        *active = strdup("tty0");
+
+                tty = *active;
+        }
+
         return tty;
 }
 
-- 
1.8.4



More information about the systemd-devel mailing list