mirror of
https://github.com/systemd/systemd.git
synced 2025-03-10 16:58:28 +03:00
getty: do not auto-spawn getty's on VC ttys if console=ttyN is used
https://bugzilla.redhat.com/show_bug.cgi?id=676885
This commit is contained in:
parent
7a57b332d0
commit
f212ac125f
4
TODO
4
TODO
@ -11,6 +11,10 @@ Bugs:
|
|||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
|
* look up crypto partition mount points via fstab to show to the user when prompting for a password
|
||||||
|
|
||||||
|
* prohibit socket activation of sysv services
|
||||||
|
|
||||||
* Maybe store in unit files whether a service should be enabled by default on package installation
|
* Maybe store in unit files whether a service should be enabled by default on package installation
|
||||||
|
|
||||||
* perhaps add "systemctl reenable" as combination of "systemctl disable" and "systemctl enable"
|
* perhaps add "systemctl reenable" as combination of "systemctl disable" and "systemctl enable"
|
||||||
|
@ -91,7 +91,12 @@ static int target_add_getty_dependencies(Target *t) {
|
|||||||
|
|
||||||
/* Automatically add in a serial getty on the kernel
|
/* Automatically add in a serial getty on the kernel
|
||||||
* console */
|
* console */
|
||||||
if (t->meta.manager->console) {
|
if (t->meta.manager->console && !tty_is_vc(t->meta.manager->console)) {
|
||||||
|
|
||||||
|
/* We assume that gettys on virtual terminals are
|
||||||
|
* started via manual configuration and do this magic
|
||||||
|
* only for non-VC terminals. */
|
||||||
|
|
||||||
log_debug("Automatically adding serial getty for %s", t->meta.manager->console);
|
log_debug("Automatically adding serial getty for %s", t->meta.manager->console);
|
||||||
if (!(n = unit_name_replace_instance(SPECIAL_SERIAL_GETTY_SERVICE, t->meta.manager->console)))
|
if (!(n = unit_name_replace_instance(SPECIAL_SERIAL_GETTY_SERVICE, t->meta.manager->console)))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
14
src/util.c
14
src/util.c
@ -3549,6 +3549,16 @@ void filter_environ(const char *prefix) {
|
|||||||
environ[j] = NULL;
|
environ[j] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool tty_is_vc(const char *tty) {
|
||||||
|
assert(tty);
|
||||||
|
|
||||||
|
if (startswith(tty, "/dev/"))
|
||||||
|
tty += 5;
|
||||||
|
|
||||||
|
return startswith(tty, "tty") &&
|
||||||
|
tty[3] >= '0' && tty[3] <= '9';
|
||||||
|
}
|
||||||
|
|
||||||
const char *default_term_for_tty(const char *tty) {
|
const char *default_term_for_tty(const char *tty) {
|
||||||
char *active = NULL;
|
char *active = NULL;
|
||||||
const char *term;
|
const char *term;
|
||||||
@ -3566,9 +3576,7 @@ const char *default_term_for_tty(const char *tty) {
|
|||||||
tty = active;
|
tty = active;
|
||||||
}
|
}
|
||||||
|
|
||||||
term = (startswith(tty, "tty") &&
|
term = tty_is_vc(tty) ? "TERM=linux" : "TERM=vt100";
|
||||||
tty[3] >= '0' && tty[3] <= '9') ? "TERM=linux" : "TERM=vt100";
|
|
||||||
|
|
||||||
free(active);
|
free(active);
|
||||||
|
|
||||||
return term;
|
return term;
|
||||||
|
@ -370,6 +370,7 @@ char *fstab_node_to_udev_node(const char *p);
|
|||||||
|
|
||||||
void filter_environ(const char *prefix);
|
void filter_environ(const char *prefix);
|
||||||
|
|
||||||
|
bool tty_is_vc(const char *tty);
|
||||||
const char *default_term_for_tty(const char *tty);
|
const char *default_term_for_tty(const char *tty);
|
||||||
|
|
||||||
bool running_in_vm(void);
|
bool running_in_vm(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user