summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-04-22 02:15:22 +0200
committerLennart Poettering <lennart@poettering.net>2012-04-22 02:41:18 +0200
commit337eebb936be1da1215535e866965ce54c82d755 (patch)
tree11d15c0122530be710b34c5cc1ce06c0d987cf4d
parentcc1368e3b3585ab822d76e00945ed4c064047530 (diff)
container: spawn a getty instead of a sulogin in a container
-rw-r--r--Makefile.am2
-rw-r--r--src/getty-generator/getty-generator.c2
-rw-r--r--units/.gitignore1
-rw-r--r--units/console-getty.service.m4.in47
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