Guia do Linux/Iniciante+Intermediário/A distribuição Debian GNU/Linux/Níveis de Execução
Níveis de Execução
[editar | editar código-fonte]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
([ch-etc.html#s-etc-inittab Arquivo /etc/inittab
, Seção 27.26]) através da linha
id:2:initdefault:
Entendendo o funcionamento dos níveis de execução do sistema (runlevels)
[editar | editar código-fonte]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.