PCF-3

Questões comentadas, artigos e notícias

LSB: runlevels & inittab

Posted by papacharliefox3 em 06/02/2009

Mais um assunto que pode ser abordado na prova: inicialização. No Linux, assim como em outras versões do Unix que seguem o padrão SystemV (outro modo utilizado em outros sistemas Unix é o BSD), existe um procedimento de inicialização baseado na interpretação do arquivo inittab, neste define-se em que nível ou modo o SO deverá ser carregado.

O termo runlevel refere-se ao modo de operação que é implementando no sistema Unix. Normalmente, são definidos 7 modos distintos, numerados de zero a seis, cada um com um propósito diferente. De acordo com a definição do projeto LSB, os modos são definidos da seguinte maneira:

0 -> Desliga (halt)
1 -> Monousuário (single user mode)
2 -> Multiusuário sem suporte à rede
3 -> Padrão multiusuário com rede
4 -> Reservado, funciona idêntico ao anterior
5 -> Multiusuário com rede e gerenciador de display (modo gráfico)
6 -> Reinicializa (reboot)

O arquivo /etc/inittab (no Linux) é o arquivo de configuração utilizado para informar ao sistema qual modo será utilizado (0-6). O formato dele é o seguinte:

id:runlevels:comportamento:processos ou comandos

Assim, a linha abaixo, identificada por ‘x’, será interpretada apenas quando o sistema rodar em modo ‘5’; o comando executado será o ‘/etc/X11/prefdm’, com o parâmetro ‘-nodaemon’ e será re-executado (respawn) cada vez que for “killado”. Isso explica a tela de login gráfico no Linux (gdm, xdm etc.), ademais, se você tentar ‘matar’ o processo do gerenciador de login gráfico ele é automaticamente reiniciado (respawn).

x:5:respawn:/etc/X11/prefdm -nodaemon

Além do comportamento listado acima, ainda existem vários outros. Ao utilizar o comportamento wait, o comando será executado apenas uma vez ao entrar no modo especificado e o processo de inicialização irá esperar pela finalização do comando para então prosseguir com a inicialização; já o comportamento off é utilizado para desligar a linha em que é especificado, ou seja, ignora o comando; outro interessante é o ctrlaltdel, acionado toda vez que as teclas CTRL+ALT+DEL são pressionadas, segue exemplo:

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Outra entrada muito importante no arquivo inittab é o que indica em que modo o SO deverá carregar:

id:3:initdefault:

Percebam que o comportamento neste caso chama-se initdefault.

Seguindo o exemplo acima, caso o SO inicie no modo 3, algumas ações serão tomadas, dentre as principais, podemos citar:

  • As linhas contendo o número ‘3’ no campo runlevels serão executadas;
  • Somente os scripts localizados no diretório /etc/rc.d/rc3.d e iniciados com a letra ‘S’ serão inicializados (ex.: S64mysqld – inicia o serviço de banco de dados MySQL).

Nas distribuições baseadas em Red Hat, como o Fedora ou CentOS, o runlevel padrão é o 3 (o 5 deve ser escolhido durante o processo de instalação).

Uma resposta to “LSB: runlevels & inittab”

  1. dmfaria said

    Não me arrependi de ler nenhum de seus posts Alexandre, continue postando!
    Fiquei interessado em saber como é a inicialização no BSD e qual a diferença para a do System V.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: