diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c index 01c2bd3750..1013e38d0d 100644 --- a/src/basic/terminal-util.c +++ b/src/basic/terminal-util.c @@ -1116,7 +1116,7 @@ int resolve_dev_console(char **ret) { * is a sign for container setups). */ _cleanup_free_ char *chased = NULL; - r = chase("/dev/console", /* root= */ NULL, /* flags= */ 0, &chased, /* ret_fd= */ NULL); + r = chase("/dev/console", /* root= */ NULL, /* flags= */ 0, &chased, /* ret_fd= */ NULL); if (r < 0) return r; if (!path_equal(chased, "/dev/console")) { @@ -1134,6 +1134,8 @@ int resolve_dev_console(char **ret) { r = read_one_line_file("/sys/class/tty/console/active", &active); if (r < 0) return r; + if (r == 0) + return -ENXIO; /* If multiple log outputs are configured the last one is what /dev/console points to */ const char *tty = strrchr(active, ' '); @@ -1149,6 +1151,8 @@ int resolve_dev_console(char **ret) { r = read_one_line_file("/sys/class/tty/tty0/active", &active); if (r < 0) return r; + if (r == 0) + return -ENXIO; tty = active; } @@ -1192,6 +1196,10 @@ int get_kernel_consoles(char ***ret) { r = read_one_line_file("/sys/class/tty/tty0/active", &tty); if (r < 0) return r; + if (r == 0) { + log_debug("No VT active, skipping /dev/tty0."); + continue; + } } path = path_join("/dev", tty);