From: Nikolai Kondrashov Date: Wed, 24 May 2017 11:58:01 +0000 (+0300) Subject: units: Tell login to preserve environment (#6023) X-Git-Tag: v234~23 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=db6aedab9292;p=thirdparty%2Fsystemd.git units: Tell login to preserve environment (#6023) Make agetty started by *getty* units pass '-p' option to "login", so it doesn't clear the environment and passes whatever was setup by systemd to shells. This is needed especially for programs which are specified as user shells, but won't read locale settings from anywhere but environment. [zj: cherry-pick just the second patch from the series, see discussion on the pull request.] --- diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in index 413d94094b1..d9d0cba4d9a 100644 --- a/units/console-getty.service.m4.in +++ b/units/console-getty.service.m4.in @@ -16,7 +16,10 @@ After=rc-local.service Before=getty.target [Service] -ExecStart=-/sbin/agetty --noclear --keep-baud console 115200,38400,9600 $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --keep-baud console 115200,38400,9600 $TERM Type=idle Restart=always RestartSec=0 diff --git a/units/container-getty@.service.m4.in b/units/container-getty@.service.m4.in index e126f3a4899..fd0be86ba7f 100644 --- a/units/container-getty@.service.m4.in +++ b/units/container-getty@.service.m4.in @@ -17,7 +17,10 @@ IgnoreOnIsolate=yes ConditionPathExists=/dev/pts/%I [Service] -ExecStart=-/sbin/agetty --noclear --keep-baud pts/%I 115200,38400,9600 $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --keep-baud pts/%I 115200,38400,9600 $TERM Type=idle Restart=always RestartSec=0 diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 index 5b82c13fc5e..2a84061ed67 100644 --- a/units/getty@.service.m4 +++ b/units/getty@.service.m4 @@ -33,7 +33,10 @@ ConditionPathExists=/dev/tty0 [Service] # the VT is cleared by TTYVTDisallocate -ExecStart=-/sbin/agetty --noclear %I $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM Type=idle Restart=always RestartSec=0 diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 index 609c5b62ee2..b7caeaff449 100644 --- a/units/serial-getty@.service.m4 +++ b/units/serial-getty@.service.m4 @@ -28,7 +28,10 @@ Conflicts=rescue.service Before=rescue.service [Service] -ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM +# The '-o' option value tells agetty to replace 'login' arguments with an +# option to preserve environment (-p), followed by '--' for safety, and then +# the entered username. +ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM Type=idle Restart=always UtmpIdentifier=%I