diff options
Diffstat (limited to 'init/serial.conf')
-rw-r--r-- | init/serial.conf | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/init/serial.conf b/init/serial.conf new file mode 100644 index 00000000..660e93bd --- /dev/null +++ b/init/serial.conf @@ -0,0 +1,42 @@ +# Automatically start a configured serial console +# +# How this works: +# +# On boot, a udev helper examines /dev/console. If a serial console is the +# primary console (last console on the commandline in grub), the event +# 'fedora.serial-console-available <port name> <speed>' is emitted, which +# triggers this script. It waits for the runlevel to finish, ensures +# the proper port is in /etc/securetty, and starts the getty. +# +# If your serial console is not the primary console, or you want a getty +# on serial even if it's not the console, create your own event by copying +# /etc/event.d/tty[2-6], and changing the getty line in that file. + +start on fedora.serial-console-available * +stop on runlevel [016] + +instance +pre-start script + while /bin/true ; do + LANG=C /sbin/initctl status rcS | grep -wq "rcS (stop) waiting" && break + sleep 1 + done + while /bin/true ; do + runlevel=$(/sbin/runlevel | /bin/awk '{ print $2 }') + case "$runlevel" in + 2|3|4|5) + LANG=C /sbin/initctl status rc$runlevel | grep -wq "rc$runlevel (stop) waiting" && break + ;; + *) + ;; + esac + sleep 1 + done + /sbin/securetty $1 +end script +exec /sbin/agetty /dev/$1 $2 vt100-nav +post-stop script + if [ "$UPSTART_EVENT" != "${UPSTART_EVENT##fedora.serial-console-available}" ]; then + initctl emit --no-wait fedora.serial-console-available $1 $2 + fi +end script |