dcavalca / rpms / systemd

Forked from rpms/systemd 3 months ago
Clone
Blob Blame History Raw
From b5f796a636fed8b75fcfbb44f48b808743fca964 Mon Sep 17 00:00:00 2001
From: Olivier Brunel <jjk@jjacky.com>
Date: Fri, 20 Sep 2013 22:18:28 +0200
Subject: [PATCH] Resolve /dev/console to the active tty instead of just "tty0"

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 6c88040..3fc080a 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")) {
+                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;
 }