core: Try to initialize TERM from systemd.tty.term.console as well

We already have the systemd.tty.xxx kernel cmdline arguments for
configuring tty's for services, let's make sure the term cmdline
argument applies to pid1 as well.
This commit is contained in:
Daan De Meyer 2023-05-08 11:27:31 +02:00
parent 32b0be0eb8
commit 153d5dfd87
2 changed files with 10 additions and 2 deletions

View file

@ -590,8 +590,10 @@
<listitem><para>These arguments allow configuring default values for <varname>$TERM</varname>,
<varname>TTYRows=</varname>, and <varname>TTYColumns=</varname> for tty
<replaceable>tty</replaceable>. The tty name should be specified without the
<filename>/dev/</filename> prefix (e.g. <literal>systemd.tty.rows.ttyS0=80</literal>).
<replaceable>tty</replaceable>. Additionally, <varname>systemd.tty.term.console</varname> will
configure the <varname>$TERM</varname> value used by <command>systemd</command> if not set explicitly
using <varname>TERM</varname> on the kernel command line. The tty name should be specified without
the <filename>/dev/</filename> prefix (e.g. <literal>systemd.tty.rows.ttyS0=80</literal>).
</para></listitem>
</varlistentry>
</variablelist>

View file

@ -1425,6 +1425,12 @@ static int fixup_environment(void) {
if (r < 0)
return r;
if (r == 0) {
r = proc_cmdline_get_key("systemd.tty.term.console", 0, &term);
if (r < 0)
return r;
}
t = term ?: default_term_for_tty("/dev/console");
if (setenv("TERM", t, 1) < 0)