chiark / gitweb /
serial: use seperate getty template for serial ttys
authorLennart Poettering <lennart@poettering.net>
Wed, 25 Aug 2010 01:09:57 +0000 (03:09 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 25 Aug 2010 01:09:57 +0000 (03:09 +0200)
.gitignore
Makefile.am
src/auto-serial-getty.c [moved from src/auto-console-getty.c with 97% similarity]
units/.gitignore
units/getty@.service.m4
units/serial-getty@.service.m4 [new file with mode: 0644]
units/systemd-auto-serial-getty.service [moved from units/systemd-auto-console-getty.service.in with 74% similarity]

index 1cee1b63286257cfd20486c7c5814ba447f5b9ad..2c92ae05b79e3cff669ef40d3f8f370baabaf24c 100644 (file)
@@ -2,7 +2,7 @@ systemd-kmsg-syslogd
 systemd-remount-api-vfs
 test-hostname
 systemd-modules-load
-systemd-auto-console-getty
+systemd-auto-serial-getty
 systemd-shutdownd
 systemd-random-seed
 systemd-update-utmp
index aa2998d99d3325dcc4e8d0e0904f8689f9c23aad..859d3326793cea7110f1fc9bfc85c747401aa362 100644 (file)
@@ -73,7 +73,7 @@ rootlibexec_PROGRAMS = \
        systemd-update-utmp \
        systemd-random-seed \
        systemd-shutdownd \
-       systemd-auto-console-getty \
+       systemd-auto-serial-getty \
        systemd-modules-load \
        systemd-remount-api-vfs \
        systemd-kmsg-syslogd
@@ -171,6 +171,7 @@ dist_systemunit_DATA = \
 nodist_systemunit_DATA = \
        units/sysinit.target \
        units/getty@.service \
+       units/serial-getty@.service \
        units/graphical.target \
        units/remote-fs.target \
        units/multi-user.target \
@@ -178,7 +179,7 @@ nodist_systemunit_DATA = \
        units/systemd-logger.service \
        units/systemd-shutdownd.service \
        units/systemd-kmsg-syslogd.service \
-       units/systemd-auto-console-getty.service \
+       units/systemd-auto-serial-getty.service \
        units/systemd-modules-load.service \
        units/systemd-remount-api-vfs.service \
        units/systemd-update-utmp-runlevel.service \
@@ -197,6 +198,7 @@ nodist_sessionunit_DATA = \
 EXTRA_DIST = \
        units/sysinit.target.m4 \
        units/getty@.service.m4 \
+       units/serial-getty@.service.m4 \
        units/graphical.target.m4 \
        units/multi-user.target.m4 \
        units/remote-fs.target.m4 \
@@ -204,7 +206,7 @@ EXTRA_DIST = \
        units/systemd-logger.service.in \
        units/systemd-shutdownd.service.in \
        units/systemd-kmsg-syslogd.service.in \
-       units/systemd-auto-console-getty.service.in \
+       units/systemd-auto-serial-getty.service.in \
        units/systemd-modules-load.service.in \
        units/systemd-remount-api-vfs.service.in \
        units/systemd-update-utmp-runlevel.service.in \
@@ -573,15 +575,15 @@ systemd_shutdownd_CFLAGS = \
 systemd_shutdownd_LDADD = \
        libsystemd-basic.la
 
-systemd_auto_console_getty_SOURCES = \
-       src/auto-console-getty.c \
+systemd_auto_serial_getty_SOURCES = \
+       src/auto-serial-getty.c \
        src/dbus-common.c
 
-systemd_auto_console_getty_CFLAGS = \
+systemd_auto_serial_getty_CFLAGS = \
        $(AM_CFLAGS) \
        $(DBUS_CFLAGS)
 
-systemd_auto_console_getty_LDADD = \
+systemd_auto_serial_getty_LDADD = \
        libsystemd-basic.la \
        $(DBUS_LIBS)
 
@@ -896,14 +898,14 @@ install-data-hook:
                $(LN_S) $(systemunitdir)/reboot.target ctrl-alt-del.target && \
                $(LN_S) $(systemunitdir)/rescue.target kbrequest.target )
        ( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
-               rm -f getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service systemd-auto-console-getty.service && \
+               rm -f getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service systemd-auto-serial-getty.service && \
                $(LN_S) $(systemunitdir)/getty@.service getty@tty1.service && \
                $(LN_S) $(systemunitdir)/getty@.service getty@tty2.service && \
                $(LN_S) $(systemunitdir)/getty@.service getty@tty3.service && \
                $(LN_S) $(systemunitdir)/getty@.service getty@tty4.service && \
                $(LN_S) $(systemunitdir)/getty@.service getty@tty5.service && \
                $(LN_S) $(systemunitdir)/getty@.service getty@tty6.service && \
-               $(LN_S) $(systemunitdir)/systemd-auto-console-getty.service systemd-auto-console-getty.service )
+               $(LN_S) $(systemunitdir)/systemd-auto-serial-getty.service systemd-auto-serial-getty.service )
        ( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
                rm -f getty.target remote-fs.target && \
                $(LN_S) $(systemunitdir)/getty.target getty.target && \
similarity index 97%
rename from src/auto-console-getty.c
rename to src/auto-serial-getty.c
index 44d2eff7329100448f0f2879ea243f6873142752..7bc2fba8da6fc6d787b8e9db4f9b5fbfdf24afab 100644 (file)
@@ -42,7 +42,7 @@ static int spawn_getty(DBusConnection *bus, const char *console) {
         assert(console);
 
         /* FIXME: we probably should escape the tty name properly here */
-        if (asprintf(&name, "getty@%s.service", console) < 0)
+        if (asprintf(&name, "serial-getty@%s.service", console) < 0)
                 return -ENOMEM;
 
         if (!(m = dbus_message_new_method_call("org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "StartUnit"))) {
@@ -115,7 +115,7 @@ static int parse_proc_cmdline(char **console) {
 
         assert(console);
 
-        if ((r = read_one_line_file("/tmp/cmdline", &line)) < 0) {
+        if ((r = read_one_line_file("/proc/cmdline", &line)) < 0) {
                 log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
                 return 0;
         }
index 82a24170cfead64a0b8c64d895380ccbe7552a85..35f790849e56e4dd2b91cf38e723e700e682d567 100644 (file)
@@ -1,3 +1,4 @@
+serial-getty@.service
 systemd-kmsg-syslogd.service
 systemd-modules-load.service
 systemd-remount-api-vfs.service
index 01343c497fe277614551b7ab0b4929dfb07d6fe2..4b65d5b9062a3e1f0f49ee54ed29f7e182d16a3a 100644 (file)
@@ -30,7 +30,7 @@ Before=getty.target
 
 [Service]
 Environment=TERM=linux
-ExecStart=GETTY %I
+ExecStart=-GETTY %I
 Restart=restart-always
 RestartSec=0
 KillMode=process-group
diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4
new file mode 100644 (file)
index 0000000..b91ed98
--- /dev/null
@@ -0,0 +1,37 @@
+#  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=Serial Getty on %I
+Requires=dev-%i.device
+After=dev-%i.device
+m4_ifdef(`TARGET_FEDORA',
+After=rc-local.service
+)m4_dnl
+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=vt100-nav
+m4_ifdef(`TARGET_FEDORA',
+ExecStartPre=-/sbin/securetty %I
+)m4_dnl
+ExecStart=-/sbin/agetty -s %I 115200,38400,9600
+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
similarity index 74%
rename from units/systemd-auto-console-getty.service.in
rename to units/systemd-auto-serial-getty.service
index 6542cab18a0517f5b33a6346b19434ea7ab4c570..8051c7446a05564087e9aa036d9172af95d2377c 100644 (file)
@@ -6,11 +6,11 @@
 #  (at your option) any later version.
 
 [Unit]
-Description=Automatically Spawn getty on Kernel Console
+Description=Automatically Spawn getty on Serial Kernel Console
 
 [Service]
 Type=oneshot
-ExecStart=@rootlibexecdir@/systemd-auto-console-getty
+ExecStart=@rootlibexecdir@/systemd-auto-serial-getty
 
 [Install]
 WantedBy=getty.target