richardphibel / rpms / systemd

Forked from rpms/systemd 2 years ago
Clone
572a44
From 41882edd0421d7f611bcec8cba9379ac8bfa24a9 Mon Sep 17 00:00:00 2001
572a44
From: Olivier Brunel <jjk@jjacky.com>
572a44
Date: Fri, 20 Sep 2013 22:18:28 +0200
572a44
Subject: [PATCH] Resolve /dev/console to the active tty instead of just "tty0"
572a44
572a44
When resolving /dev/console one would often get "tty0" meaning the active VT.
572a44
Resolving to the actual tty (e.g. "tty1") will notably help on boot when
572a44
determining whether or not PID1 can output to the console.
572a44
---
572a44
 src/shared/util.c | 10 ++++++++++
572a44
 1 file changed, 10 insertions(+)
572a44
572a44
diff --git a/src/shared/util.c b/src/shared/util.c
572a44
index b1a4006..8a542da 100644
572a44
--- a/src/shared/util.c
572a44
+++ b/src/shared/util.c
572a44
@@ -3627,6 +3627,16 @@ char *resolve_dev_console(char **active) {
572a44
         else
572a44
                 tty = *active;
572a44
 
572a44
+        if (streq(tty, "tty0")) {
572a44
+                char *tmp;
572a44
+
572a44
+                /* Get the active VC (e.g. tty1) */
572a44
+                if (read_one_line_file("/sys/class/tty/tty0/active", &tmp) >= 0) {
572a44
+                        free(*active);
572a44
+                        tty = *active = tmp;
572a44
+                }
572a44
+        }
572a44
+
572a44
         return tty;
572a44
 }
572a44