docs: add kmsconvt@.service systemd template
authorDavid Herrmann <dh.herrmann@googlemail.com>
Mon, 17 Dec 2012 12:25:52 +0000 (13:25 +0100)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Mon, 17 Dec 2012 12:25:52 +0000 (13:25 +0100)
This new template can be used as replacement for getty@.service. It has
the same semantics and can be used as drop-in replacement. It even uses
getty@.service as fallback if kmscon fails.
See the comments in the files for more information.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
docs/kmscon@.service [deleted file]
docs/kmsconvt@.service [new file with mode: 0644]

diff --git a/docs/kmscon@.service b/docs/kmscon@.service
deleted file mode 100644 (file)
index a75967e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=KMS System Console on %i
-Documentation=man:kmscon(1)
-After=systemd-user-sessions.service
-Before=getty.target
-IgnoreOnIsolate=yes
-
-[Service]
-ExecStart=-/usr/bin/kmscon --vt=%i -l /bin/login
-UtmpIdentifier=%I
-KillMode=process
-
-[Install]
-Alias=getty.target.wants/kmscon@%I.service
diff --git a/docs/kmsconvt@.service b/docs/kmsconvt@.service
new file mode 100644 (file)
index 0000000..cf6b211
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# KMSCON system console on VTs on seat0
+# This unit takes as template argument a VT name (same as getty@.service) and
+# spawns KMSCON on this VT. Note that this does automatically limit KMSCON to
+# seat0. You cannot spawn KMSCON on other seats with this unit.
+#
+# You can replace the default getty@.service that is shipped with systemd by
+# linking it with:
+#   ln -s /usr/lib/systemd/system/kmscon@.service /etc/systemd/system/autovt@.service
+# This will make systemd start KMSCON instead of agetty on each VT. Or more
+# precisely, this will make systemd-logind use kmscon@.service instead of
+# getty@.service for new VTs. In fact, all other units/scripts/... that use
+# getty@.service will not be affected by this change.
+#
+# Note that by default getty@.service installs itself as getty@tty1.service.
+# This unit does the same and overrules getty@tty1.service via the "Conflict"
+# line below.
+#
+# If KMSCON cannot start for whatever reason, this unit will cause
+# getty@.service to be started instead. So you will always have a safe fallback.
+# Furthermore, if no VTs are available, this unit will not start anything.
+#
+# You can still use getty@.service and kmsconvt@.service simultaneously on
+# different VTs, but you cannot use both on the same VT (and this wouldn't make
+# any sense).
+#
+
+[Unit]
+Description=KMS System Console on %I
+Documentation=man:kmscon(1)
+After=systemd-user-sessions.service
+After=plymouth-quit-wait.service
+Before=getty.target
+Conflicts=getty@%i.service
+OnFailure=getty@%i.service
+IgnoreOnIsolate=yes
+ConditionPathExists=/dev/tty0
+
+[Service]
+ExecStart=/usr/bin/kmscon "--vt=%I" --seats=seat0 --no-switchvt
+UtmpIdentifier=%I
+TTYPath=/dev/%I
+TTYReset=yes
+TTYVHangup=yes
+TTYVTDisallocate=yes
+
+[Install]
+Alias=getty.target.wants/kmsconvt@tty1.service