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
 | 
