Table of Contents
Boot scripts
The startup and shutdown scripts with their configuration files.
- SliTaz and startup.
- /etc/init.d/* - Directory of scripts and daemons.
- /etc/init.d/rcS - Primary initialization script.
- Specific scripts and daemons - Scripts and daemons with a very specific task.
- /etc/inittab - Configuration file init.
SliTaz and startup
SliTaz does not use a level of execution (runlevel), the system is initialized via a primary script and its main configuration file. This script itself launches some other smaller scripts which deal with the internationalization or any commands placed for the system to start.
/etc/init.d/* - Directory of scripts/daemons
The directory /etc/init.d contains all of the rc scripts, scripts finishing with '.sh' are simple shell scripts and daemons such as 'dropbear' or 'lighttpd' are scripts that launch a service. The daemon scripts can start, stop or restart through the command:
# /etc/init.d/daemon [start|stop|restart]
On SliTaz you will find a /etc/init.d/README describing the basic function of rc scripts. Also note that all startup scripts and daemons can call upon the /etc/init.d/rc.functions file. This file makes it possible to include various functions in rc scripts. For example, SliTaz uses a function status to check whether the previous command has succeeded (0) or not.
/etc/init.d/rcS - Primary initialization script
The /etc/init.d/rcS script configures all the basic services and initializes the base system. It begins by mounting the filesystems and starts services like syslogd, klogd, mdev and cleans up the system and so on. It uses the configuration file /etc/rcS.conf to locate which daemons and scripts to launch at startup. You can browse the script to learn which commands are executed:
# nano rootfs/etc/init.d/rcS
Specific scripts and daemons
bootopts.sh - LiveCD mode options
This script is used to configure the LiveCD options passed at boot time and is readable via the /proc/cmdline file. This is the script that enables you to use a USB key or external hard disk /home partition with the option home=usb or home=sda[1-9]. Note that it can also directly specify the language and keyboard parameters.
network.sh - Initializing the network
This script searches the network.sh configuration file /etc/network.conf for the network interface to use; if one wants to launch the DHCP client (or not) or if you want to use a fixed (static) IP. On SliTaz the /etc/init.d/network.sh script configures the network interfaces to start using the information contained in /etc/network.conf. If the variable $DHCP is equal to yes, then the /etc/init.d/network.sh script launches the DHCP client on the $INTERFACE interface.
i18n.sh - Internationalization
SliTaz backs up the configuration of the default locale in /etc/locale.conf which is read by /etc/profile at each login. The /etc/locale.conf is generated during boot time thanks to the /etc/i18n.sh script. This script launches the 'tazlocale' application if /etc/locale.conf doesn't exist. We use the same process for the keyboard layout using 'tazkmap' and the /etc/kmap.conf configuration file. Both applications are installed and located in /sbin and use dialog and the ncurses library. The script also checks whether the configuration file for the time zone /etc/TZ exists, otherwise it creates one relying on the keyboard configuration.
local.sh - Local commands
The /etc/init.d/local.sh script allows the system administrator to add local commands to be executed at boot. Example:
#!/bin/sh # /etc/init.d/local.sh: Local startup commands. # All commands here will be executed at boot time. # . /etc/init.d/rc.functions echo "Starting local startup commands... "
wpa_action.sh - Wireless network
This script is applied by network.sh to start/restart the DHCP server if you use a dynamic IP.
rc.shutdown
This script is invoked by /etc/inittab during system shutdown. It also stops all daemons via the variable RUN_DAEMONS in the primary /etc/rcS.conf configuration file.
/etc/inittab - Configuration file init
The first file read by the Kernel at boot. It defines the initialization script (/etc/init.d/rcS), virtual terminals (ttys) and actions in the event of a reboot or disruption. You will find a complete example with accompanying notes in SliTaz tools:
# /etc/inittab: init configuration for SliTaz GNU/Linux. # Boot-time system configuration/initialization script. # ::sysinit:/etc/init.d/rcS # /sbin/getty respawn shell invocations for selected ttys. tty1::respawn:/sbin/getty 38400 tty1 tty2::respawn:/sbin/getty 38400 tty2 tty3::respawn:/sbin/getty 38400 tty3 tty4::respawn:/sbin/getty 38400 tty4 tty5::respawn:/sbin/getty 38400 tty5 tty6::respawn:/sbin/getty 38400 tty6 # Stuff to do when restarting the init # process, or before rebooting. ::restart:/etc/init.d/rc.shutdown ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/etc/init.d/rc.shutdown