Como um Debian é inicializado

Você já se perguntou o que acontece nos bastidores na hora da inicialização de um sistema Debian? Quem chama quem? Quem executa o quê? Quais os processos envolvidos?

[ Hits: 15.987 ]

Por: Airton Arantes em 26/10/2009


Runlevels



Cada runlevel tem seu diretório, veja essa listagem:

Nível - N
Diretório - Nenhum
Descrição - Inicialização do sistema

Nível - 0
Diretório -/etc/rc0.d/
Descrição - Finalização do sistema

Nível - S
Diretório - /etc/rcS.d/
Descrição - Monousuário na inicialização do sistema

Nível - 1
Diretório - /etc/rc1.d/
Modo monousuário trocado a partir de um modo multiusuário

Nível - 2 até o 5
Diretório - /etc/rc[2 ao 5].d/
Descrição - Modo multiusuário

Nível - 6
Diretório - /etc/rc6.d/
Descrição - Reinicialização

Nível - 7 ao 9
Diretório - /etc/rc[7 ao 9].d/
Descrição - Nível multiusuário, mas normalmente não é usado

Os mais importantes são os runlevels do 0 ao 6.

Você pode verificar em qual runlevel seu sistema está executando o comando:

runlevel

E pode entrar em algum runlevel com o comando:

telinit <NÚMERO DO RUNLEVEL>

Experimente fazer o comando:

# telinit 6

Você verá seu sistema ser reinicializado. Justo, pois mandamos o init para o runlevel de reinicialização.

Certo, mas o que tem dentro desses diretórios "/etc/rc<do 0 ao 6>.d"? Eles contém links simbólicos para arquivos que estão localizados em /etc/init.d

Vamos ver um exemplo do conteúdo do diretório /etc/rc5.d.

# ls /etc/rc5.d/
README
S16ssh
S20courier-authdaemon
S20courier-pop-ssl
S20postfix
S30squid
S91apache2
S10rsyslog
S17mysql-ndb-mgm
S20courier-imap
S20exim4
S20samba
S40dhcp3-server
S99rc.local
S12acpid
S18mysql-ndb
S20courier-imap-ssl
S20nfs-common
S20snmpd
S89atd
S99rmnologin
S15bind9
S19mysql
S20courier-pop
S20openbsd-inetd
S21fam
S89cron
S99stop-bootlogd

Todos esse arquivos são um link simbólico para /etc/init.d, mas vamos prestar um pouco mais de atenção nesses arquivos, veja que eles começam com uma letra S (de Start), o que significa que serão executados pelo init quando este estiver no 5° nível de execução.

Vamos dar um olhada em um runlevel um pouco mais baixo, como o /etc/rc1.d/:

# ls /etc/rc1.d/
K09apache2
K20courier-authdaemon
K20courier-pop-ssl
K20postfix
K22mysql-ndb
K81portmap
K90rsyslog
K11atd
K20courier-imap
K20exim4
K20snmpd
K23mysql-ndb-mgm
K84ssh
README
K11cron
K20courier-imap-ssl
K20nfs-common
K21fam
K30squid
K85bind9
S30killprocs
K19samba
K20courier-pop
K20openbsd-inetd
K21mysql
K40dhcp3-server
K88acpid
S90single

Opa, aqui já mudou um pouco, a maioria dos links simbólicos estão começando com a letra K (de kill), ou seja, estes processos serão eliminados quando o init alcançar o runlevel 1.

Primeiro os links com a letra K são executados e depois os S. A ordem que os links são executados dependem do valor numérico que acompanha o link, por exemplo, os seguintes arquivos são executados em sequência:

S10sysklogd
S12kerneld
S20inetd
S20linuxlogo
S20logoutd
S20lprng
S89cron
S99xdm

E é assim, o init percorre todos os runlevels até o valor default do init indicado pela linha "initdeafult" no /etc/inittab executando todos scripts necessários para que você tenha um sistema completamente carregado.

Página anterior    

Páginas do artigo
   1. Visão geral do processo de inicialização
   2. Runlevels
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Usando cron e crontab para agendar tarefas

Lógica para computação - parte IV

Snapshots de pacotes para o Debian

Ubuntu no Samsung Chromebook com processador ARM

Alternativas ao Flash Player no openSUSE

  
Comentários
[1] Comentário enviado por alevian em 26/10/2009 - 13:22h

Olá!

Sou iniciante em Linux.
Cheguei a ter acesso ao processo quando tentava configurar uma placa de vídeo, com auxílio do pessoal do Mandriva.

Poderia dizer se estes arquivos todos são carregados em todas as distros ou na maioria deles? Teriam mais a ver com o Kernel ou com a Ditro?

Grato!

[2] Comentário enviado por adrianoturbo em 26/10/2009 - 15:03h

Cara os runlevels: rc0.d ,rc1.d ,rc2.d ,rc3.d ,rc4.d ,rc5.d e rc6.d são defaults ,só variam em alguns casos de diretórios .






[3] Comentário enviado por airtonarantes em 26/10/2009 - 16:14h

O que o adrianoturbo disse está correto, mesmo que esse artigo seja apenas para mostrar como um DEBIAN é inicializado, não terá uma diferença muito grande para as inicializações de outras distribuições.

Acredito que ao ler esse artigo, mesmo você usando outra distribuição, será de grande ajuda para entender como a sua distribuição está sendo inicializada, você apenas terá que ver algumas característica peculiares da sua distro para ter um maior domínio.


[4] Comentário enviado por leodamasceno em 27/10/2009 - 11:42h

Airton, parabéns pelo artigo!
Ficou muito bom :)

[5] Comentário enviado por fainfo em 04/11/2009 - 22:54h

Artigo muito bom Airton, bem exclarecido, ainda mais pra "mim" que estou iniciando no Debian, ou melhor, levando ele mais a sério!!!

Abraço!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts