Níveis de Execução

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)

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 seqüê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.