Under normal (i.e. kiosk) conditions, Linux should boot straight into Kiosk mode. In the event of a power failure, accidental reboot, or scheduled reboot, you need to configure the system to do this.
For our kiosk we elected to use init level 4, which is normally unused, for kiosk mode. We made the following adjustment to /etc/inittab:
# Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - Kiosk mode # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:4:initdefault:
To initialize the kiosk after everything else has been initialized, including, in our case, Apache and MySQL, create the file /etc/rc.d/rc.4/S99xkiosk:
#!/bin/bash # # S99xkiosk Initialization of kiosk for runlevel 4 # # Author: Gene Wilburn <[email protected]> # # Display message on console echo "Starting up the X Window Kiosk ... " if [ -f /.netscape/lock] ; then rm /.netscape/lock fi # Logging of X activity echo %%%%%%%%%%%%%Reboot%%%%%%%%%% >> /var/log/xlog /root/xkiosk # This point should only be reached by pressing Ctrl-Backspace /sbin/shutdown -r now # All done.
Once this file has been created and inittab has been adjusted to boot into init level 4, Linux will boot directly into kiosk mode. On our kiosk we disable telnet and ftp and install ssh so we can maintain and administer the kiosk remotely across the network with ssh and scp.
There are times, especially during testing, when you'd like to work from the console in a normal init level 3 mode. To do this, press Ctrl-Backspace to reboot the system. When LILO: appears type:
LILO: linux init 3
and log in as usual.