Os scripts de inicialização e finalização com seus arquivos de configuração.
O SliTaz não usa um nível de execução (runlevel) - o sistema é inicializado por meio de um script primário e seu arquivo de configuração principal. O script por si só executa outros scripts menores que lidam, por exemplo, com a internacionalização ou os comandos necessários ao início do sistema.
O diretório /etc/init.d contem todos os scripts rc, que são simples scripts shell com a extensão “.sh”, e daemons como o “dropbear” ou o “lighttpd”, que são scripts que executam um serviço. Os scripts de daemons podem iniciar, parar ou reiniciar por meio do comando:
# /etc/init.d/daemon [start|stop|restart]
No SliTaz você encontra o arquivo /etc/init.d/README que descreve as funções básicas dos scripts rc. Note que todos os scripts de inicialização e daemons podem executar o arquivo /etc/init.d/rc.functions. Este arquivo possibilita incluir várias funções nos scripts rc. O SliTaz usa a função status para checar se o comando anterior foi executado com sucesso (0) ou não.
O script /etc/init.d/rcS configura todos os serviços básicos e inicializa o sistema. Ele começa montando o sistema de arquivos e iniciando serviços como o syslogd, klogd, mdev, limpa o sistema e etc. Utiliza o arquivo de configuração /etc/rcS.conf para verificar quais daemons e scripts executar na inicialização. Você pode ler o arquivo para saber quais comandos são executados:
# nano rootfs/etc/init.d/rcS
Este script é usado para configurar as opções de LiveCD passadas no momento da inicialização e pode ser lido por meio do arquivo /proc/cmdline. Este é o script que permite a utilização de um Pendrive ou de um disco rígido externo - montados na partição /home com a opção home=usb ou home=sda[1-9] - ou a especificação da linguagem e parâmetros de teclado.
Este script procura pelo arquivo de configuração /etc/network.conf para sua utilização pela interface de rede: pode-se desejar executar o cliente DHCP (ou não) ou usar um IP estático. No SliTaz o script /etc/init.d/network.sh configura as interfaces de rede para iniciarem usando as informações contidas em /etc/network.conf. Se a variável $DHCP é igual a “yes”, então o script /etc/init.d/network.sh executa o cliente DHCP na interface $INTERFACE.
O SliTaz armazena a configuração do locale padrão em /etc/locale.conf que é lido pelo arquivo /etc/profile a cada login. O /etc/locale.conf é gerado durante a inicialização do sistema graças ao script /etc/i18n.sh. Este script executa o aplicativo “tazlocale” se o arquivo /etc/locale.conf não existir. O mesmo processo é utilizado para o layout de teclado usando o aplicativo “tazkmap” e o arquivo de configuração /etc/kmap.conf. Ambos os aplicativos são instalados e localizados em /sbin e usam dialog e a biblioteca ncurses. O script também checa se o arquivo /etc/TZ (Time Zone) existe: se este não existe ele cria um baseado nas configurações de teclado.
O script /etc/init.d/local.sh permite ao administrador do sistema adicionar comandos locais a serem utilizados no momento da inicialização. Exemplo:
#!/bin/sh # /etc/init.d/local.sh: Comandos de inicialização locais. # Todos os comandos aqui devem ser executados no momento da inicialização. # . /etc/init.d/rc.functions echo "Starting local startup commands... "
Este script é invocado pelo /etc/inittab durante a finalização do sistema. Também para todos os daemons especificados pela variável $RUN_DAEMONS no arquivo de configuração primário /etc/rcS.conf.
O primeiro arquivo lido pelo Kernel no momento da inicialização. Define o script de inicialização (/etc/init.d/rcS), shells (ttys) e ações no caso de uma re-inicialização ou interferência. Exemplo:
# /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