Manpages

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 miquels [AT] cistron.nl">Miquel van Smoorenburg. Este manual foi escrito por lederer [AT] francium.de">Sebastian Lederer e modificado por u31b3hs [AT] pool.de">Michael Haardt.

VEJA TAMBÉM

init(8), telinit(8)