diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-04-22 02:15:22 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-04-22 02:41:18 +0200 |
commit | 337eebb936be1da1215535e866965ce54c82d755 (patch) | |
tree | 11d15c0122530be710b34c5cc1ce06c0d987cf4d | |
parent | cc1368e3b3585ab822d76e00945ed4c064047530 (diff) |
container: spawn a getty instead of a sulogin in a container
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | src/getty-generator/getty-generator.c | 2 | ||||
-rw-r--r-- | units/.gitignore | 1 | ||||
-rw-r--r-- | units/console-getty.service.m4.in | 47 |
4 files changed, 51 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index 22a04d4a1b..ab7fca677a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -304,6 +304,7 @@ nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ units/console-shell.service \ + units/console-getty.service \ units/systemd-initctl.service \ units/systemd-shutdownd.service \ units/systemd-modules-load.service \ @@ -339,6 +340,7 @@ EXTRA_DIST += \ units/getty@.service.m4 \ units/serial-getty@.service.m4 \ units/console-shell.service.m4.in \ + units/console-getty.service.m4.in \ units/rescue.service.m4.in \ units/systemd-initctl.service.in \ units/systemd-shutdownd.service.in \ diff --git a/src/getty-generator/getty-generator.c b/src/getty-generator/getty-generator.c index 58ad8a6635..13dca7d1b0 100644 --- a/src/getty-generator/getty-generator.c +++ b/src/getty-generator/getty-generator.c @@ -116,7 +116,7 @@ int main(int argc, char *argv[]) { if (detect_container(NULL) > 0) { log_debug("Automatically adding console shell."); - if (add_symlink("console-shell.service", "console-shell.service") < 0) + if (add_symlink("console-getty.service", "console-getty.service") < 0) r = EXIT_FAILURE; /* Don't add any further magic if we are in a container */ diff --git a/units/.gitignore b/units/.gitignore index eda676a480..16cbf2df2b 100644 --- a/units/.gitignore +++ b/units/.gitignore @@ -1,3 +1,4 @@ +/console-getty.service /systemd-journald.service user@.service systemd-logind.service diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in new file mode 100644 index 0000000000..9473d61dfe --- /dev/null +++ b/units/console-getty.service.m4.in @@ -0,0 +1,47 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Console Getty +After=systemd-user-sessions.service plymouth-quit-wait.service +m4_ifdef(`TARGET_FEDORA', +After=rc-local.service +)m4_dnl +m4_ifdef(`TARGET_ARCH', +After=rc-local.service +)m4_dnl +m4_ifdef(`TARGET_FRUGALWARE', +After=local.service +)m4_dnl +m4_ifdef(`TARGET_ALTLINUX', +After=rc-local.service +)m4_dnl +m4_ifdef(`TARGET_MANDRIVA', +After=rc-local.service +)m4_dnl +m4_ifdef(`TARGET_MAGEIA', +After=rc-local.service +)m4_dnl +Before=getty.target + +[Service] +ExecStart=-/sbin/agetty --noclear -s console 115200,38400,9600 +Restart=always +RestartSec=0 +UtmpIdentifier=cons +TTYPath=/dev/console +TTYReset=yes +TTYVHangup=yes +KillMode=process +IgnoreSIGPIPE=no + +# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash +# terminates cleanly. +KillSignal=SIGHUP + +[Install] +WantedBy=getty.target |