O programa INIT

O init é um dos programas absolutamente essenciais para a operação de um sistema Linux, mas que a maioria dos usuários pode ignorar. Uma boa distribuição Linux conterá a configuração de um init que funcionará com a maioria dos sistemas e não haverá necessidade de se fazer absolutamente nada. Porém aqui apresento informações aos que gostam de conhecer melhor sobre o S.O.

[ Hits: 62.704 ]

Por: Adriano Boer em 21/02/2009


Configuração do INIT



Quando é inicializado, o init lê o arquivo de configuração /etc/inittab. Enquanto o sistema estiver no ar, ele será lido novamente, caso seja enviado um sinal HUP, tornando desnecessário reinicializar o sistema para que as mudanças do init façam efeito.

O arquivo /etc/inittab é um pouco complicado. Começaremos pelo caso mais simples, ou seja, configurando as linhas do getty. As linhas do /etc/inittab consistem de quatro campos delimitados por dois pontos:

id :nível:ação:processo

Os campos são descritos a seguir. O /etc/inittab pode conter algumas linhas vazias, e linhas que comecem com '#' serão consideradas comentários.
  • id: Identifica a linha no arquivo. Para linhas referentes ao getty especifica o terminal em que eles são executados (os caracteres após o /dev/tty no nome do arquivo de dispositivo). Para outras linhas não têm efeito (exceto pelas restrições de tamanho), e devem ser únicas.
  • nível: Os níveis de execução em que a linha deve ser considerada. Os níveis de execução são definidos através de dígitos sem delimitadores e são melhores descritos na próxima seção.
  • ação: Define a ação que deve ser tomada pela linha. Por exemplo, respawn para executar novamente o comando do próximo campo, quando este encerra seu processamento ou once para executá-lo somente uma única vez.
  • processo: O comando a ser executado. Para iniciar o getty no primeiro terminal virtual (/dev/tty1), em todos os modos de execução multi-usuários (de 2 a 5), podemos informar a seguinte linha:

    1:1234S:respawn:/sbin/getty 9600 tty1

    O primeiro campo diz que a linha deve ser executada para /dev/tty1. O segundo que ele aplica-se aos níveis de execução de 1 a 5. O terceiro que o comando deve ser reinicializado quando o processo termina (ou seja quando um usuário desconectar-se de um terminal, o getty será executado novamente para que outro usuário possa conectar-se). O último campo executa o processo getty no primeiro terminal virtual.

Caso necessite adicionar terminais ou modems para atendimento de chamadas ao sistema, deve-se adicionar mais linhas ao arquivo /etc/inittab, uma para cada terminal ou modem. Ver as páginas de manual do init(8), inittab(5), mingetty(8) e mgetty(8) para maiores detalhes.

Caso o comando falhe ao ser executado, e o init esteja configurado para reinicializá-Io, isso certamente consumirá uma grande quantidade de recursos, pois o processo de iniciar o comando se repetirá indefinidamente. Para prevenir esse tipo de problema, o init verificará a frequência de reinicialização do comando e caso esta seja muito grande, o init aguardará automaticamente por cinco minutos antes de iniciá-lo novamente.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução ao INIT
   2. Configuração do INIT
   3. Níveis de execução
   4. Configurações iniciais no /etc/inittab
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Software envelhece?

Mate Desktop no Slackware

Controlando projetos com o Subversion

Turbine o seu SUSE instalando o apt-get com um repositório de mais de 5.000 pacotes

Cygwin, um Linux dentro do Windows

  
Comentários
[1] Comentário enviado por pogo em 21/02/2009 - 14:20h

excelente texto, parabéns!
isso também é muito útil para quem vai fazer a LPI... =)

[2] Comentário enviado por cassimirinho em 21/02/2009 - 21:19h

Como faço para editar no ubuntu? (já que o inittab não existe neste diretório)

Minha máquina é um pouco limita de hardware(processamento) e gostaria de dar uma otimizada e eliminando recursos que não tenho e não preciso utilizar. Segue o /etc/init.d/
acpid glibc.sh mysql-ndb-mgm stop-bootlogd
acpi-support hal networking stop-bootlogd-single
alsa-utils halt pcmciautils stop-readahead
anacron hostname.sh policykit sysklogd
apache2 hotkey-setup powernowd system-tools-backends
apmd hwclockfirst.sh powernowd.early udev
apparmor hwclock.sh pppd-dns udev-finish
apport keyboard-setup procps ufw
atd killprocs pulseaudio uml-utilities
avahi-daemon klogd rc umountfs
binfmt-support laptop-mode rc.local umountnfs.sh
bluetooth linux-restricted-modules-common rcS umountroot
bootlogd loopback readahead urandom
bootmisc.sh module-init-tools readahead-desktop usplash
checkfs.sh mountall-bootclean.sh README vbesave
checkroot.sh mountall.sh reboot vboxdrv
console-screen.kbd.sh mountdevsubfs.sh rmnologin virtualbox-ose
console-setup mountkernfs.sh rsync winbind
cron mountnfs-bootclean.sh samba wpa-ifupdown
cups mountnfs.sh screen-cleanup x11-common
dbus mountoverflowtmp sendsigs xserver-xorg-input-wacom
dkms_autoinstaller mtab.sh single
dns-clean mysql skeleton
gdm mysql-ndb ssh


Se eu apenas deletar algum arquivo desses resolve ou terei problemas?

[3] Comentário enviado por araujo_silva em 22/02/2009 - 13:03h

O sistema Ubuntu o arquivo de inicialização para a estrutura baseada no diretorio /etc/event.d, onde os eventos de inicialização encontram-se distribuidos em arquivos que inicializam serviços específicos. Esta organização apresenta o nível 2 como nível padrão (/etc/event.d/rc2) e os comandos initctl para gerência de eventos.

$ sudo initctl list
logd (stop) waiting
rc-default (stop) waiting
rc0 (stop) waiting
...
tty5 (start) running, process 4720
tty6 (start) running, process 4727

$ cat /etc/event.d/tty1
# tty1 – getty
#
# This service maintains a getty on tty1 from the point when
# the system is started until it is shut down again.

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6 r

espawn
exec /sbin/getty 38400 tty1

Circule pelos arquivos e compare com o arquivo /etc/inittab para atvar funcionalidades equivalentes.

Abraços

araujo_silva

[4] Comentário enviado por cassimirinho em 22/02/2009 - 19:34h

Não entendi, "circule pelos arquivos e compare..." eu não tenho o /etc/inittab
Seguindo esses dois comando que você listou apareceu e mesma coisa postada aqui.

[5] Comentário enviado por nicolo em 24/02/2009 - 15:12h

Excelente!

[6] Comentário enviado por ramontcruz em 09/03/2009 - 10:12h

valeu demais a pena ter lido!!!
parabens!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts