chiark / gitweb /
units: make sure getty@xxx.service is always run before gettys.target
[elogind.git] / units / getty@.service.m4
index f1f7f326304b9e12777755f49883665643688cd5..01343c497fe277614551b7ab0b4929dfb07d6fe2 100644 (file)
@@ -13,7 +13,8 @@ m4_ifdef(`TARGET_ARCH', `m4_define(`GETTY', `/sbin/agetty -8 38400')')m4_dnl
 m4_dnl
 [Unit]
 Description=Getty on %I
-Before=getty.target
+Requires=dev-%i.device
+After=dev-%i.device
 m4_ifdef(`TARGET_FEDORA',
 After=rc-local.service
 )m4_dnl
@@ -21,6 +22,12 @@ m4_ifdef(`TARGET_ARCH',
 After=rc-local.service
 )m4_dnl
 
+# If additional gettys are spawned during boot (possibly by
+# systemd-auto-console-getty) then we should make sure that this is
+# synchronized before getty.target, even though getty.target didn't
+# actually pull it in.
+Before=getty.target
+
 [Service]
 Environment=TERM=linux
 ExecStart=GETTY %I
@@ -28,10 +35,9 @@ Restart=restart-always
 RestartSec=0
 KillMode=process-group
 
+# Some login implementations ignore SIGTERM, so we send SIGHUP
+# instead, to ensure that login terminates cleanly.
+KillSignal=SIGHUP
+
 [Install]
-Alias=getty.target.wants/getty@tty1.service
-Alias=getty.target.wants/getty@tty2.service
-Alias=getty.target.wants/getty@tty3.service
-Alias=getty.target.wants/getty@tty4.service
-Alias=getty.target.wants/getty@tty5.service
-Alias=getty.target.wants/getty@tty6.service
+Alias=getty.target.wants/getty@tty1.service getty.target.wants/getty@tty2.service getty.target.wants/getty@tty3.service getty.target.wants/getty@tty4.service getty.target.wants/getty@tty5.service getty.target.wants/getty@tty6.service