- bookworm-backports 3.08-3~bpo12+2
- testing 3.11-1
- unstable 3.13-1
INITTAB(5) | Formatos de Ficheiro | 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
- 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
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. Este manual foi escrito por Sebastian Lederer e modificado por Michael Haardt.
VEJA TAMBÉM¶
4 Dezembro, 2001 | sysvinit |