9.6. Uso e Configuração do Script de Inicialização do System V

9.6.1. Como os Scripts de Inicialização do System V funcionam?

Esta versão do LFS usa um aparato especial de inicialização chamado SysVinit, baseado em uma série de níveis de execução. O procedimento de inicialização pode ser bem diferente de um sistema para outro; o fato de que as coisas funcionam de uma maneira em uma distribuição específica do Linux não garante que elas funcionarão da mesma forma no LFS. O LFS tem a própria maneira de fazer as coisas, mas ele respeita os padrões geralmente aceitos.

Existe um procedimento alternativo de inicialização chamado systemd. Nós não mais discutiremos esse processo de inicialização aqui. Para uma descrição detalhada, visite-se https://www.linux.com/training-tutorials/understanding-and-using-systemd/.

O SysVinit (o qual será referido como init daqui pra frente) usa um esquema de níveis de execução. Existem sete níveis de execução, numerados de 0 a 6. (Atualmente, existem mais níveis de execução, mas os outros são para casos especiais e geralmente não são usados. Veja-se init(8) para mais detalhes). Cada um dos sete corresponde às ações que o computador é suposto realizar quando ele inicia ou desliga. O nível de execução padrão é o 3. Aqui estão as descrições dos diferentes níveis de execução conforme eles estão implementados no LFS:

0: parar o computador
1: Modo de usuário(a) único(a)
2: Reservado para personalização, do contrário faz o mesmo que 3
3: Modo de multi-usuário(a), com rede de comunicação
4: Reservado para personalização, do contrário faz o mesmo que 3
5: Mesmo que 4, ele é usado usualmente para login GUI (como o gdm do GNOME ou o lxdm do LXDE)
6: reinicializar o computador

[Nota]

Nota

Classicamente, o nível de execução 2 acima era definido como "modo de multi-usuário(a), sem rede de comunicação", porém isso somente foi o caso muitos anos atrás quando múltiplos(as) usuários(as) podiam se conectar a um sistema via portas seriais. No ambiente da atualidade isso não faz sentido e agora nós dizemos que ele está "reservado".

9.6.2. Configurando o Sysvinit

Durante a inicialização do núcleo, o primeiro aplicativo que é executado (se não substituído na linha de comando) é o init. Esse aplicativo lê o arquivo de inicialização /etc/inittab. Crie esse arquivo com:

cat > /etc/inittab << "EOF"
# Início do /etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc S

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S06:once:/sbin/sulogin
s1:1:respawn:/sbin/sulogin

1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600

# Fim do /etc/inittab
EOF

Uma explicação desse arquivo de inicialização está na página de manual para inittab. No LFS, o comando chave é rc. O arquivo de inicialização acima instrui rc a executar todos os scripts começando com um S no diretório /etc/rc.d/rcS.d seguido por todos os scripts começando com um S no diretório /etc/rc.d/rc?.d onde o ponto de interrogação é especificado pelo valor de initdefault.

Como uma conveniência, o script rc lê uma biblioteca de funções em /lib/lsb/init-functions. Essa biblioteca também lê um arquivo de configuração opcional, /etc/sysconfig/rc.site. Quaisquer dos parâmetros de configuração do sistema descritos em seções subsequentes podem ser colocados nesse arquivo, permitindo a consolidação de todos os parâmetros do sistema nesse único arquivo.

Como uma conveniência de depuração, o script de funções também registra todas as saídas geradas em /run/var/bootlog. Dado que o diretório /run é um tmpfs, esse arquivo não é persistente ao longo de inicializações; entretanto, ele é adicionado ao arquivo mais permanente /var/log/boot.log ao final do processo de inicialização.

9.6.2.1. Mudando Níveis de Execução

A mudança de níveis de execução é feita com init <runlevel>, onde <runlevel> é o nível de execução alvo. Por exemplo, para reinicializar o computador, um(a) usuário(a) poderia emitir o comando init 6, o qual é um apelido para o comando reboot. Da mesma forma, init 0 é um apelido para o comando halt.

Existe um número de diretórios sob /etc/rc.d que se parecem com rc?.d (onde ? é o número do nível de execução) e rcS.d, todos contendo um número de links simbólicos. Alguns links começam com um K, os outros começam com um S, e todos eles tem dois números seguindo a letra inicial. O K significa parar (kill) um serviço e o S significa iniciar um serviço. Os números determinam a ordem na qual os scripts são executados, de 00 a 99—quanto menor o número, mais cedo o script executa. Quando init alterna para outro nível de execução, os serviços adequados são tanto iniciados quanto parados, dependendo do nível de execução escolhido.

Os scripts reais estão em /etc/rc.d/init.d. Eles fazem o trabalho atual e os links simbólicos todos apontam para eles. Os links K e os links S apontam para o mesmo script em /etc/rc.d/init.d. Isso é porque os scripts podem ser chamados com parâmetros diferentes como start, stop, restart, reload e status. Quando um link K é encontrado, o script apropriado é executado com o argumento stop. Quando um link S é encontrado, o script apropriado é executado com o argumento start.

Estas são descrições do que os argumentos fazem os scripts fazer:

start

O serviço é iniciado.

stop

O serviço é parado.

restart

O serviço é parado e então iniciado novamente.

reload

A configuração do serviço é atualizada. Isso é usado depois que o arquivo de configuração de um serviço foi modificado, quando o serviço não precisa ser reiniciado.

status

Diz se o serviço está executando e com quais PIDs.

Sinta-se livre para modificar a maneira como o processo de inicialização funciona (afinal de contas, este é seu próprio sistema LFS). Os arquivos dados aqui são um exemplo de como isso pode ser feito.

9.6.3. Scripts de Inicialização do Udev

O script de iniciação /etc/rc.d/init.d/udev inicia o udevd, aciona quaisquer dispositivos "plugue frio" que já tenham sido criados pelo núcleo e aguarda por quaisquer regras para completar. O script também desconfigura o manuseador do uevent do padrão do /sbin/hotplug. Isso é feito, pois o núcleo não mais precisa chamar um binário externo. Em vez disso, o udevd escutará em um soquete de link de rede os uevents que o núcleo gera.

O script /etc/rc.d/init.d/udev_retry se ocupa de re-acionar eventos para subsistemas cujas regras possivelmente dependam de sistemas de arquivos que não estão montados até que o script mountfs seja executado (em particular, /usr e /var possivelmente causem isso). Esse script executa depois do script mountfs, de forma que aquelas regras (se re-acionadas) deveriam prosperar na segunda vez. Ele é configurado pelo arquivo /etc/sysconfig/udev_retry; quaisquer palavras nesse arquivo outras que comentários são consideradas nomes de subsistema para acionar ao tempo de re-tentativa. Para encontrar o subsistema de um dispositivo, use udevadm info --attribute-walk <dispositivo>, onde <dispositivo> é um caminho absoluto em /dev ou /sys, tais como /dev/sr0 ou /sys/class/rtc.

Para informação acerca de carregamento de módulo do núcleo e Udev, veja-se Seção 9.3.2.3, “Carregamento de Módulo”.

9.6.4. Configurando o Relógio do Sistema

O script setclock lê a hora a partir do relógio do hardware, também conhecido como relógio do BIOS ou do Complementary Metal Oxide Semiconductor (CMOS). Se o relógio do hardware estiver configurado para UTC, [então] esse script converterá a hora do relógio do hardware para a hora local usando o arquivo /etc/localtime (o qual diz ao aplicativo hwclock qual fuso horário usar). Não existe maneira de detectar se o relógio do hardware está ou não configurado para UTC, de forma que isso precisa ser configurado manualmente.

O aplicativo setclock é executado via udev quando o núcleo detecta o recurso do hardware em consequência da inicialização. Ele também pode ser executado manualmente com o parâmetro pare para armazenar a hora do sistema para o relógio CMOS.

Se você não conseguir lembrar se o relógio do hardware está ou não configurado para UTC, [então] descubra executando o comando hwclock --localtime --show. Isso mostrará o que é a hora atual de acordo com o relógio do hardware. Se essa hora corresponder à que o seu relógio diz, então o relógio do hardware está configurado para hora local. Se a saída gerada originária do hwclock não for a hora local, [então] as chances são as de que ele esteja configurado para hora UTC. Verifique isso adicionando ou subtraindo a número apropriado de horas para o seu fuso horário à (da) hora mostrada pelo hwclock. Por exemplo, se você estiver atualmente no fuso horário MST, o qual é conhecido também como GMT -0700, [então] adicione sete horas à hora local.

Mude o valor da variável UTC abaixo para um valor de 0 (zero) se o relógio do hardware NÃO estiver configurado para hora UTC.

Crie um novo arquivo /etc/sysconfig/clock executando o seguinte:

cat > /etc/sysconfig/clock << "EOF"
# Início do /etc/sysconfig/clock

UTC=1

# Configure isto para quaisquer opções que você pudesse precisar dar para hwclock,
# tais como tipo do relógio de hardware de máquina para Alphas.
CLOCKPARAMS=

# Fim do /etc/sysconfig/clock
EOF

Uma boa dica explicando como lidar com hora no LFS está disponível em https://www.linuxfromscratch.org/hints/downloads/files/time.txt. Ela explica problemas como fusos horários, UTC e a variável de ambiente TZ.

[Nota]

Nota

Os parâmetros CLOCKPARAMS e UTC também possivelmente sejam configurados no arquivo /etc/sysconfig/rc.site.

9.6.5. Configurando o Console do Linux

Esta seção discute como configurar o script de inicialização console que configura o mapa de teclado, fonte do console e nível de registro do núcleo do console. Se caracteres não-ASCII (por exemplo, o sinal de direitos autorais, o sinal da libra britânica e o símbolo do Euro) não serão usados e o teclado for um dos Estados Unidos da América do Norte, [então] muito desta seção pode ser pulada. Sem o arquivo de configuração, (ou configurações equivalentes em rc.site), o script de inicialização console não fará nada.

O script console lê o arquivo /etc/sysconfig/console para informação de configuração. Decida qual mapa de teclas e fonte de tela serão usados. Vários HOWTOs específicos de idiomas também podem ajudar com isso; veja-se https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Se ainda em dúvida, [então] olhe nos diretórios /usr/share/keymaps e /usr/share/consolefonts para mapas de teclas válidos e fontes de tela. Leiam-se as páginas de manual loadkeys(1) e setfont(8) para determinar os argumentos corretos para esses aplicativos.

O arquivo /etc/sysconfig/console deveria conter linhas da forma: VARIÁVEL="valor". As seguintes variáveis são reconhecidas:

LOGLEVEL

Essa variável especifica o nível de registro para mensagens do núcleo enviadas para o console, conforme configurado por dmesg -n. Níveis válidos são de "1" (sem mensagens) até "8". O nível padrão é "7".

KEYMAP

Essa variável especifica os argumentos para o aplicativo loadkeys, tipicamente, o nome do mapa de teclas a carregar, por exemplo, it. Se essa variável não estiver configurada, [então] o script de inicialização não executará o aplicativo loadkeys e o mapa padrão de teclas do núcleo será usado. Observe que uns poucos mapas de teclas tem múltiplas versões com o mesmo nome (cz e variantes dele em qwerty/ e qwertz/; es em olpc/ e qwerty/; e trf em fgGIod/ e qwerty/). Nesses casos, o diretório ancestral também deveria ser especificado (por exemplo, qwerty/es) para garantir que o mapa de teclas adequado seja carregado.

KEYMAP_CORRECTIONS

Essa (raramente usada) variável especifica os argumentos para a segunda chamada ao aplicativo loadkeys. Isso é útil se o mapa padrão de teclas não for completamente satisfatório e um pequeno ajuste tenha que ser feito. Por exemplo, para incluir o símbolo do Euro em um mapa de teclas que normalmente não o tem, configure essa variável para euro2.

FONT

Essa variável especifica os argumentos para o aplicativo setfont. Tipicamente, isso inclui o nome da fonte, -m, e o nome do mapa de caracteres de aplicação a carregar. Por exemplo, para a finalidade de carregar a fonte lat1-16 juntamente com o mapa de caracteres de aplicação 8859-1 (apropriado nos Estados Unidos da América do Norte), configure essa variável para lat1-16 -m 8859-1. Em modo UTF-8, o núcleo usa o mapa de caracteres de aplicação para converter os códigos de tecla de 8 bits para UTF-8. Dessa maneira, o argumento do parâmetro "-m" deveria ser configurado para a codificação dos códigos compostos de tecla no mapa de teclas.

UNICODE

Configure essa variável para 1, yes ou true para a finalidade de colocar o console em modo UTF-8. Isso é útil em locales baseados em UTF-8 e danoso de outra forma.

LEGACY_CHARSET

Para muitos esquemas de teclado, não existe mapa padrão de teclado Unicode no pacote Kbd. O script de inicialização console converterá um mapa de teclas disponível para UTF-8 em tempo real se essa variável estiver configurada para a codificação do mapa disponível de teclas não-UTF-8.

Alguns exemplos:

  • Para uma configuração não-Unicode, somente as variáveis KEYMAP e FONT geralmente são necessárias. Por exemplo, para uma configuração em polonês, alguém usaria:

    cat > /etc/sysconfig/console << "EOF"
    # Início do /etc/sysconfig/console
    
    KEYMAP="pl2"
    FONT="lat2a-16 -m 8859-2"
    
    # Fim do /etc/sysconfig/console
    EOF
  • Como mencionado acima, às vezes é necessário ajustar um mapa padrão de teclas um pouco. O exemplo seguinte adiciona o símbolo do Euro ao mapa de teclas alemão:

    cat > /etc/sysconfig/console << "EOF"
    # Iníco do /etc/sysconfig/console
    
    KEYMAP="de-latin1"
    KEYMAP_CORRECTIONS="euro2"
    FONT="lat0-16 -m 8859-15"
    UNICODE="1"
    
    # Fim do /etc/sysconfig/console
    EOF
  • O seguinte é um exemplo habilitado para Unicode para búlgaro, onde um mapa padrão de teclas UTF-8 existe:

    cat > /etc/sysconfig/console << "EOF"
    # Início do /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="bg_bds-utf8"
    FONT="LatArCyrHeb-16"
    
    # Fim do /etc/sysconfig/console
    EOF
  • Devido ao uso de uma fonte LatArCyrHeb-16 de 512 glifos no exemplo anterior, cores brilhantes não mais estão disponíveis no console do Linux, a menos que uma parte da RAM usada para armazenamento temporário de dados que estão esperando para serem enviados para um dispositivo e que armazene o conteúdo de uma imagem pixel por pixel seja usada. Se alguém quiser ter cores brilhantes sem uma parte da RAM usada para armazenamento temporário de dados que estão esperando para serem enviados para um dispositivo e que armazene o conteúdo de uma imagem pixel por pixel e puder viver sem caracteres que não pertencem a seu idioma, [então] ainda é possível usar uma fonte de 256 glifos específica para o idioma, conforme ilustrado abaixo:

    cat > /etc/sysconfig/console << "EOF"
    # Início do /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="bg_bds-utf8"
    FONT="cyr-sun16"
    
    # Fim do /etc/sysconfig/console
    EOF
  • O seguinte exemplo ilustra conversão automática de mapa de teclas de ISO-8859-15 para UTF-8 e habilitação de teclas mortas em modo Unicode:

    cat > /etc/sysconfig/console << "EOF"
    # Início do /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="de-latin1"
    KEYMAP_CORRECTIONS="euro2"
    LEGACY_CHARSET="iso-8859-15"
    FONT="LatArCyrHeb-16 -m 8859-15"
    
    # Fim do /etc/sysconfig/console
    EOF
  • Alguns mapas de teclas tem teclas mortas (isto é, teclas que não produzem um carácter por elas próprias, mas põem um acento no carácter produzido pela próxima tecla) ou definem regras de composição (tais como: press Ctrl+. A E para obter Æ no mapa de teclas padrão). O Linux-6.1.11 interpreta teclas mortas e regras de composição no mapa de teclas corretamente somente quando os caracteres fonte a serem compostos juntos não são multi-byte. Essa deficiência não afeta mapas de teclas para idiomas europeus, pois lá acentos são adicionados a caracteres ASCII não acentuados, ou dois caracteres ASCII são compostos juntos. Entretanto, em modo UTF-8 isso é um problema; por exemplo, para o idioma grego, onde alguém de vez em quando precisa colocar um acento na letra alpha. A solução é ou evitar o uso de UTF-8, ou instalar o sistema de janelas X que não tem essa limitação no manuseio de entradas geradas dele.

  • Para chinês, japonês, coreano e alguns outros idiomas, o console do Linux não pode ser configurado para exibir os caracteres necessários. Usuários(as) que precisam de tais idiomas deveriam instalar o Sistema de Janelas X, fontes que cobrem os intervalos necessários de caracteres, e o método de entrada adequado (por exemplo, SCIM, suporta uma ampla variedade de idiomas).

[Nota]

Nota

O arquivo /etc/sysconfig/console somente controla a localização do console de texto do Linux. Ele não tem nada a ver com configurar o esquema adequado de teclado e fontes de terminal no Sistema de Janelas X; com sessões do ssh; ou com um console serial. Em tais situações, as limitações mencionadas nos últimos dois itens de lista acima não se aplicam.

9.6.6. Criando Arquivos na Inicialização

De vez em quando, é desejável criar arquivos em tempo de inicialização. Por exemplo, o diretório /tmp/.ICE-unix frequentemente é necessário. Isso pode ser feito criando-se uma entrada no script de configuração /etc/sysconfig/createfiles. O formato desse arquivo está embutido nos comentários do arquivo padrão de configuração.

9.6.7. Configurando o Script Sysklogd

O script sysklogd invoca o aplicativo syslogd como uma parte da inicialização do System V. A opção -m 0 desliga a marca de carimbo de tempo periódica que o syslogd escreve nos arquivos de registro a cada 20 minutos por padrão. Se você quiser ligar essa marca de carimbo de tempo periódica, [então] edite /etc/sysconfig/rc.site e defina a variável SYSKLOGD_PARMS para o valor desejado. Por exemplo, para remover todos os parâmetros, configure a variável para um valor nulo:

SYSKLOGD_PARMS=

Veja-se man syslogd para mais opções.

9.6.8. O Arquivo rc.site

O arquivo opcional /etc/sysconfig/rc.site contém configurações que são automaticamente configuradas para cada script de inicialização do SystemV. Ele pode alternativamente configurar os valores especificados nos arquivos hostname, console e clock no diretório /etc/sysconfig/. Se as variáveis associadas estiverem presentes em ambos desses arquivos separados e rc.site, [então] os valores nos arquivos específicos de script tem precedência.

rc.site também contém parâmetros que podem personalizar outros aspectos do processo de inicialização. Configurar a variável IPROMPT habilitará a execução seletiva de scripts de inicialização. Outras opções estão descritas nos comentários de arquivo. A versão padrão do arquivo é como se segue:

# rc.site
# Optional parameters for boot scripts.

# Distro Information
# These values, if specified here, override the defaults
#DISTRO="Linux From Scratch" # The distro name
#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
#DISTRO_MINI="LFS" # Short name used in filenames for distro config

# Define custom colors used in messages printed to the screen

# Please consult `man console_codes` for more information
# under the "ECMA-48 Set Graphics Rendition" section
#
# Warning: when switching from a 8bit to a 9bit font,
# the linux console will reinterpret the bold (1;) to
# the top 256 glyphs of the 9bit font.  This does
# not affect framebuffer consoles

# These values, if specified here, override the defaults
#BRACKET="\\033[1;34m" # Blue
#FAILURE="\\033[1;31m" # Red
#INFO="\\033[1;36m"    # Cyan
#NORMAL="\\033[0;39m"  # Grey
#SUCCESS="\\033[1;32m" # Green
#WARNING="\\033[1;33m" # Yellow

# Use a colored prefix
# These values, if specified here, override the defaults
#BMPREFIX="      "
#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
#WARNING_PREFIX="${WARNING} *** ${NORMAL} "

# Manually set the right edge of message output (characters)
# Useful when resetting console font during boot to override
# automatic screen width detection
#COLUMNS=120

# Interactive startup
#IPROMPT="yes" # Whether to display the interactive boot prompt
#itime="3"    # The amount of time (in seconds) to display the prompt

# The total length of the distro welcome string, without escape codes
#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"

# The total length of the interactive string, without escape codes
#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"

# Set scripts to skip the file system check on reboot
#FASTBOOT=yes

# Skip reading from the console
#HEADLESS=yes

# Write out fsck progress if yes
#VERBOSE_FSCK=no

# Speed up boot without waiting for settle in udev
#OMIT_UDEV_SETTLE=y

# Speed up boot without waiting for settle in udev_retry
#OMIT_UDEV_RETRY_SETTLE=yes

# Skip cleaning /tmp if yes
#SKIPTMPCLEAN=no

# For setclock
#UTC=1
#CLOCKPARAMS=

# For consolelog (Note that the default, 7=debug, is noisy)
#LOGLEVEL=7

# For network
#HOSTNAME=mylfs

# Delay between TERM and KILL signals at shutdown
#KILLDELAY=3

# Optional sysklogd parameters
#SYSKLOGD_PARMS="-m 0"

# Console parameters
#UNICODE=1
#KEYMAP="de-latin1"
#KEYMAP_CORRECTIONS="euro2"
#FONT="lat0-16 -m 8859-15"
#LEGACY_CHARSET=

9.6.8.1. Personalizando os Scripts de Inicialização e Desligamento

Os scripts de inicialização do LFS inicializam e desligam um sistema de uma maneira bastante eficiente, porém existem uns poucos ajustes que você pode fazer no arquivo rc.site para aumentar a velocidade ainda mais e ajustar mensagens de acordo com suas preferências. Para fazer isso, ajuste as configurações no arquivo /etc/sysconfig/rc.site acima.

  • Durante o script de inicialização udev, existe uma chamada para udev settle que exige algum tempo para completar. Esse tempo possivelmente ou possivelmente não seja exigido dependendo dos dispositivos no sistema. Se você tiver somente partições simples e uma placa ethernet, [então] o processo de inicialização provavelmente não precisará esperar por esse comando. Para pulá-lo, configure a variável OMIT_UDEV_SETTLE=y.

  • O script de inicialização udev_retry também executa udev settle por padrão. Esse comando é necessário somente se o diretório /var for montado separadamente, pois o relógio precisa do arquivo /var/lib/hwclock/adjtime. Outras personalizações possivelmente também precisem esperar que o Udev complete, porém em muitas instalações ele não é necessário. Pule o comando configurando a variável OMIT_UDEV_RETRY_SETTLE=y.

  • Por padrão, as verificações do sistema de arquivos são silenciosas. Isso pode parecer um atraso durante o processo de inicialização. Para ligar a saída gerada do fsck, configure a variável VERBOSE_FSCK=y.

  • Quando reinicializar, você possivelmente queira pular a verificação do sistema de arquivos, fsck, completamente. Para fazer isso, ou crie o arquivo /fastboot ou reinicialize o sistema com o comando /sbin/shutdown -f -r now. Por outro lado, você pode forçar que todos os sistemas de arquivos sejam verificados criando /forcefsck ou executando shutdown com o parâmetro -F em vez de -f.

    Configurar a variável FASTBOOT=y desabilitará fsck durante o processo de inicialização até que ela seja removida. Isso não é recomendado em uma base permanente.

  • Normalmente, todos os arquivos no diretório /tmp são deletados em tempo de inicialização. Dependendo do número de arquivos ou diretórios presentes, isso pode causar um atraso notável no processo de inicialização. Para pular a remoção desses arquivos configure a variável SKIPTMPCLEAN=y.

  • Durante o desligamento, o aplicativo init envia um sinal TERM para cada aplicativo que ele tenha iniciado (por exemplo agetty), espera um tempo configurado (padrão 3 segundos), então envia a cada processo um sinal KILL e aguarda novamente. Esse processo é repetido no script sendsignals para quaisquer processos que não sejam desligados pelos scripts próprios deles. O atraso para init pode ser configurado passando-se um parâmetro. Por exemplo, para remover o atraso no init, passe o parâmetro -t0 quando desligar ou reinicializar (por exemplo /sbin/shutdown -t0 -r now). O atraso para o script sendsignals pode ser pulado configurando-se o parâmetro KILLDELAY=0.