43 lines
1.3 KiB
Plaintext
43 lines
1.3 KiB
Plaintext
# 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 -l /sbin/qubes_serial_login /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
|