INITTAB(5)

NOME
inittab - formato do ficheiro inittab usando pelo processo init compatível com sysv

DESCRIÇÃO
O ficheiro inittab descreve quais processos são iniciados no arranque e durante a operação normal (ex. /etc/init.d/boot, /etc/init.d/rc, gettys...). O init(8) distingue múltiplos runlevels, cada um dos quais pode ter o seu próprio conjunto de processos que é arrancado. Os runlevels válidos são 0-6 mais A, B, e C para entradas ondemand. Uma entrada no ficheiro inittab tem o seguinte formato:

    id:runlevels:action:process

As linhas que começam com `#' são ignoradas.

id  é uma sequência única de 1-4 caracteres que identifica uma entrada em inittab (para versões do sysvinit compiladas com a antiga libc5 (< 5.2.18) ou bibliotecas a.out o limite é de 2 caracteres).

    Nota: tradicionalmente, para o getty e outros processos de login, este valor do campo id é mantido no mesmo que o sufixo do tty correspondente, ex. 1 para tty1. Alguns programas antigos de contabilidade de login podem esperar isto, apesar de não me lembrar de nenhum.

runlevels
    lista os runlevels para os quais a acção especificada deve ser tomada.

action
    descreve qual a acção que deve ser tomada.

process
    especifica o processo a ser executado. Se o campo de processo começar com um caractere `+', o init não irá contabilizar tmp e wtmp para esse processo. Isto é preciso para gettys que insistem em fazer a sua própria limpeza utmp/wtmp. Isto é também um bug histórico. O comprimento deste campo está limitado a 127 caracteres.

    Por favor note que incluir certos caracteres no campo de processo irá resultar no init a tentar lançar uma shell para interpretar o comando contido no campo de processo. Os caracteres que pode despoletar uma shell são: ~`!$^&*()=|}[];

    Em sistemas que não tenham uma shell para ser lançada ou quais não se deseja usar uma shell para interpretar o campo do processo, o campo de processo pode ser prefixado com o símbolo @. O @ irá ser ignorado e tudo o que se segue será tratado como o comando a ser lançado, literalmente, pelo serviço init.

    Em casos que ambos sinais + e @ vão ser usados (para desligar os relatórios e interpretação da shell) coloque o sinal + antes do símbolo @. Ambas bandeiras irão ser lidadas e depois tudo o que se segue ao @ irá ser lidado pelo init

O campo runlevels pode conter vários caracteres para diferentes runlevels. Por exemplo, 123 especifica que o processo deve ser iniciado nos runlevels 1, 2, e 3. Os runlevels para entradas ondemand podem conter um A, B, ou C. O campo runlevels das entradas sysinit, boot, e bootwait é ignorado.

Quando o runlevel do sistema é mudado, quaisquer processos a correr que não estão especificados para o novo runlevel são mortos, primeiro com SIGTERM, e depois com SIGKILL.

As acções válidas para o campo action são:

respawn
    O processo será reiniciado sempre que termine (ex. getty).

wait
    O processo irá ser iniciado assim que se entra no runlevel especificado e o init irá esperar pelo seu término.

once
    O processo irá ser executado uma vez quando se entra no runlevel especificado.

boot
    O processo será executado durante o arranque do sistema. O campo runlevels é ignorado.

bootwait
    O processo será executado durante o arranque do sistema, enquanto init espera pelo seu término (ex. /etc/rc). O campo runlevels é ignorado.

off Isto não faz nada.

ondemand
    Um processo marcado com um runlevel ondemand será executado sempre que o runlevel ondemand especificado é chamado. No entanto, nenhuma mudança de runlevel irá ocorrer (os runlevels ondemand são `a', `b', e `c').

initdefault
    Uma entrada initdefault especifica o runlevel em que se deve entrar após o arranque do sistema. Se não existir nenhum, o init irá pedir um runlevel na consola. O campo process é ignorado.

sysinit
    O processo será executado durante o arranque do sistema. Será executado antes de qualquer entrada boot ou bootwait. O campo runlevels é ignorado.

powerwait
    O processo será executado quando a energia vai abaixo. O init é geralmente informado disto por um processo que fala com uma UPS ligada ao computador. O init irá esperar que o processo termine antes de continuar.

powerfail
    Como para powerwait, excepto que o init não espera pelo final do processo.

powerokwait
    Este processo será executado assim que o init é informado que a energia foi restaurada.

powerfailnow
    Este processo será executado quando é dito ao init que a bateria da UPS externa está quase vazia e a energia está a falhar (desde que a UPS externa e o processo de monitorização sejam capazes de detectar esta condição).

ctrlaltdel
    O processo será executado quando o init receber o sinal SIGINT. Isto significa que alguém na consola do sistema pressionou a combinação de teclas CTRL-ALT-DEL. Tipicamente alguém quer executar alguma espécie de shutdown seja para ir para nível de único-utilizador ou para reiniciar a máquina.

kbrequest
    O processo será executado quando o init receber um sinal a partir do manipulador do teclado que uma combinação especial de teclas foi pressionada no teclado da consola.

    A documentação para esta função ainda não está completa; pode ser encontrada mais informação nos pacotes kbd-x.xx (o mais recente foi kbd-0.94 na altura que isto foi escrito). Basicamente você deseja mapear alguma combinação do teclado para a acção "KeyboardSignal". Por exemplo, para mapear Alt-SetaCima para este objectivo use o seguinte no seu ficheiro keymaps:

    alt keycode 103 = KeyboardSignal

EXEMPLOS
Isto é um exemplo de uma inittab que é semelhante à inittab antiga do Linux:

    # inittab for linux
    id:1:initdefault:
    rc::bootwait:/etc/rc
    1:1:respawn:/etc/getty 9600 tty1
    2:1:respawn:/etc/getty 9600 tty2
    3:1:respawn:/etc/getty 9600 tty3
    4:1:respawn:/etc/getty 9600 tty4

Este ficheiro inittab executa /etc/rc durante o arranque e inicia gettys em tty1-tty4.

Uma inittab mais elaborada com diferentes runlevels (veja os comentários no interior):

    # Nível para onde correr
    id:2:initdefault:

    # Script de configuração/inicialização do sistema durante o arranque.
    si::sysinit:/etc/init.d/rcS

    # O que fazer em modo de único-utilizador.
    ~:S:wait:/sbin/sulogin

    # /etc/init.d executa os scripts S e K na comutação
    # do runlevel.
    #
    # Runlevel 0 é parar.
    # Runlevel 1 é único-utilizador.
    # Runlevels 2-5 são multi-utilizador.
    # Runlevel 6 é reiniciar.

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

    # O que fazer na "saudação dos 3 dedos".
    ca::ctrlaltdel:/sbin/shutdown -t1 -h now

    # Runlevel 2,3: getty on virtual consoles
    # Runlevel   3: getty on terminal (ttyS0) and modem (ttyS1)
    1:23:respawn:/sbin/getty tty1 VC linux
    2:23:respawn:/sbin/getty tty2 VC linux
    3:23:respawn:/sbin/getty tty3 VC linux
    4:23:respawn:/sbin/getty tty4 VC linux
    S0:3:respawn:/sbin/getty -L 9600 ttyS0 vt320
    S1:3:respawn:/sbin/mgetty -x0 -D ttyS1

FICHEIROS
/etc/inittab

AUTOR
init foi escrito por Miquel van Smoorenburg (miquels@cistron.nl). Este manual foi escrito por Sebastian Lederer (lederer@francium.informatik.uni-bonn.de) e modificado por Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

VEJA TAMBÉM
init(8), telinit(8)