Guia do Linux/Avançado/A distribuição Debian GNU/Linux/Níveis de Execução

Níveis de Execução

editar

Os Níveis de execução (run levels) são diferentes modos de funcionamento do GNU/Linux com programas, daemons e recursos específicos. Em geral, os sistemas GNU/Linux possuem sete níveis de execução numerados de 0 a 6. O daemon init é o primeiro programa executado no GNU/Linux (veja através do ps ax|grep init) e responsável pela carga de todos daemons de inicialização e configuração do sistema.

O nível de execução padrão em uma distribuição GNU/Linux é definido através do arquivo de configuração do /etc/inittab através da linha


     id:2:initdefault:

Entendendo o funcionamento dos níveis de execução do sistema (runlevels)

editar

Os nível de execução atual do sistema pode ser visualizado através do comando runlevel e modificado através dos programas init ou telinit. Quando é executado, o runlevel lê o arquivo /var/run/utmp e adicionalmente lista o nível de execução anterior ou a letra N em seu lugar (caso ainda não tenha ocorrido a mudança do nível de execução do sistema).

Na Debian, os diretórios /etc/rc0.d a /etc/rc6.d contém os links simbólicos para arquivos em /etc/init.d que são acionados pelo nível de execução correspondente.

Por exemplo, o arquivo S10sysklogd em /etc/rc2.d, é um link simbólico para /etc/init.d/sysklogd.

O que aconteceria se você removesse o arquivo /etc/rc2.d/S10sysklogd? Simplesmente o daemon sysklogd deixaria de ser executado no nível de execução 2 do sistema (que é o padrão da Debian).

A Debian segue o seguinte padrão para definir se um link simbólico em /etc/rc[0-6].d iniciará ou interromperá a execução de um serviço em /etc/init.d, que é o seguinte:

  • Se um link é iniciado com a letra K (kill), quer dizer que o serviço será interrompido naquele nível de execução. O que ele faz é executar o daemon em /etc/init.d seguido de stop.
  • Se um link é iniciado com a letra S (start), quer dizer que o serviço será iniciado naquele nível de execução (é equivalente a executar o daemon seguido de start).

Primeiro os links com a letra K são executado 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

Note que os arquivos que iniciam com o mesmo número (S20*) são executados alfabeticamente. O nível de execução do sistema pode ser modificado usando-se o comando init ou telinit. Os seguinte níveis de execução estão disponíveis na Debian:

  • 0 - Interrompe a execução do sistema. todos os programas e daemons finalizados. É acionado pelo comando shutdown -h
  • 1 - Modo monousuário, útil para manutenção dos sistema.
  • 2 - Modo multiusuário (padrão da Debian)
  • 3 - Modo multiusuário
  • 4 - Modo multiusuário
  • 5 - Modo multiusuário com login gráfico
  • 6 - Reinicialização do sistema. Todos os programas e daemons são encerrados e o sistema é reiniciado. É acionado pelo comando shutdown -r e o pressionamento de CTRL ALT DEL.

Por exemplo, para listar o nível de execução atual do sistema digite: runlevel. O runlevel deverá listar algo como:


     N 2

Agora para mudar para o nível de execução 1, digite: init 3. Agora confira a mudança digitando: runlevel. Você deverá ver este resultado:


     2 3

Isto quer dizer que o nível de execução anterior era o 2 e o atual é o 3.