# # 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/kmsconvt@.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 kmsconvt@.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 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 --hwaccel UtmpIdentifier=%I TTYPath=/dev/%I TTYReset=yes TTYVHangup=yes TTYVTDisallocate=yes [Install] WantedBy=getty.target