summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--TODO2
-rw-r--r--units/.gitignore1
-rw-r--r--units/console-shell.service.m441
4 files changed, 46 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index a2e40c3fd1..97c8be35ee 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -260,6 +260,7 @@ dist_systemunit_DATA = \
nodist_systemunit_DATA = \
units/getty@.service \
units/serial-getty@.service \
+ units/console-shell.service \
units/graphical.target \
units/remote-fs.target \
units/multi-user.target \
@@ -304,6 +305,7 @@ nodist_userunit_DATA = \
EXTRA_DIST = \
units/getty@.service.m4 \
units/serial-getty@.service.m4 \
+ units/console-shell.service.m4 \
units/graphical.target.m4 \
units/multi-user.target.m4 \
units/remote-fs.target.m4 \
diff --git a/TODO b/TODO
index 986e06a609..4fc728ffcc 100644
--- a/TODO
+++ b/TODO
@@ -24,6 +24,8 @@ F15:
* capability_bounding_set_drop not used.
+* remove getty magic, move it into a generator
+
Features:
* optionally create watched directories in .path units
diff --git a/units/.gitignore b/units/.gitignore
index 008446d4bb..a64cac13e2 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -1,3 +1,4 @@
+console-shell.service
systemd-sysctl.service
systemd-ask-password-console.service
rescue.service
diff --git a/units/console-shell.service.m4 b/units/console-shell.service.m4
new file mode 100644
index 0000000000..c98a08fccc
--- /dev/null
+++ b/units/console-shell.service.m4
@@ -0,0 +1,41 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Console Shell
+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
+Before=getty.target
+
+[Service]
+Environment=HOME=/root
+WorkingDirectory=/root
+ExecStart=-/sbin/sulogin
+ExecStopPost=-/bin/systemctl poweroff
+StandardInput=tty-force
+KillMode=process-group
+
+# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
+# terminates cleanly.
+KillSignal=SIGHUP
+
+[Install]
+WantedBy=getty.target