Linux e Unix
Runlevels - Níveis de Execução
Um runlevel (nível de execução) é um modo de operação do sistema que define quais serviços do sistema estarão disponíveis (rodando). Os runlevels são identificados por números, de 0 a 6.
Podemos usar os níveis de execução para decidir quais subsistemas irão rodar na máquina, como por exemplo decidir se a GUI irá ser executada (X Window System), se a rede estará operacional, se mais de um usuário poderá se logar no sistema, desligar e reiniciar, etc.
A tabela a seguir mostra os níveis de execução de acordo com a especificação LSB (Linux Standard Base) e seus significados:
Runlevel | Significado |
0 | Desligar o sistema |
1 | Modo de usuário único (modo de manutenção) |
2 | Modo multiusuário sem rede |
3 | Modo multiusuário com rede |
4 | Não usado |
5 | Modo multiusuário completo com GUI (runlevel 3 com interface gráfica) |
6 | Reiniciar o sistema |
Na verdade, os runlevels de 2 a 5 podem variar dependendo da distribuição Linux considerada.
Todo sistema Linux suporta três níveis de execução básicos (0,1 e 6) e mais um runlevel (no mínimo) para operação normal do sistema.
Veja, na tabela a seguir, os níveis de execução definidos em uma distribuição Debian, como a usada nos nossos exemplos aqui:
Runlevel | Significado |
0 | Desligar o sistema |
1 | Modo de usuário único (modo de manutenção) |
2 a 5 | Modos multiusuário completos (com ou sem GUI) |
6 | Reiniciar o sistema |
Fonte: https://wiki.debian.org/RunLevel
Os serviços que serão inicializados em cada runlevel são definidos pelo conteúdo de vários diretórios rcX.d, com X variando de 0 a 6, que se localizam dentro de /etc/ em sistemas Debian e derivados.
Vejamos o conteúdo de um desses diretórios, como o /etc/rc0.d:
Veja que há uma série de itens cujo nome se inicia com a letra K. Em outros diretórios há também itens cujo nome se inicia com S. Vamos olhar os detalhes desses itens usando o comando ls -l:
Notamos que os itens são na verdade atalhos para usa série de arquivos localizados no diretório /etc/init.d/. Esses arquivos são scripts de inicialização e finalização individuais para cada serviço do sistema, que são executados quando o sistema entra no runlevel associado.
Quando o nome do link se inicia com a letra K (kill), trata-se de um serviço que será finalizado, se estiver rodando, ao entrar no runlevel.
Se o nome do link se iniciar com a letra S (start), trata-se então de um serviço que será inicializado quando o sistema entrar no nível de execução associado.
O formato geral dos nomes desses arquivos é então:
KNNnome e SNNnome, onde:
- Letras K e S: como descrito acima;
- NN: Número de sequência, com dois dígitos, que especifica a ordem relativa para iniciar ou finalizar os serviços. Números mais baixos indicam scripts que serão executados primeiro. Caso haja repetição de números, a ordem alfabética será usada.
- nome: Nome para identificação dos serviços.
Vejamos o conteúdo do diretório /etc/rc2.d/:
Temos neste diretório vários links iniciados com a letra S, indicando serviços que devem ser iniciados quando o sistema entrar no nível de execução 2.
Definir o nível de execução padrão:
Quando o sistema é iniciado, o processo init (primeiro processo do sistema) levará o sistema a um runlevel padrão, o qual é configurado no arquivo /etc/inittab, na linha a seguir:
Veja que o meu sistema, por padrão, entra no nível de execução 2 de acordo com o arquivo inittab.
Podemos alterar o runlevel padrão editando esse arquivo e trocando o número do nível de execução nesta linha pelo runlevel desejado.
CUIDADO!!!: Nunca configure os runlevels 0 ou 6 no arquivo /etc/inittab, pois seu sistema não conseguirá mais inicializar corretamente! |
Para verificarmos o runlevel atual do sistema, digite o comando runlevel no console:
$ runlevel
No exemplo acima, o número 2 indica que o runlevel atual é 2, e a letra N indica o runlevel em que o sistema se encontrava antes de entra no nível 2 (neste caso, nenhum), informação lida no arquivo /var/run/utmp.
Podemos alterar o runlevel do sistema pela linha de comandos usando comandos como o init e o telinit, que você pode conferir clicando aqui.
Gerenciando os links de runlevel no Debian
Podemos gerenciar os links de scripts de nível de execução usando o utilitário sysv-rc-conf, que pode ser instalado com o comando a seguir:
# apt-get install sysv-rc-conf
E aberto com o comando:
# sysv-rc-conf
Com esse utilitário podemos consultar e também ativar ou desativar scripts em cada nível de execução no console com facilidade. Veja a tela do utilitário em execução:
Basta navegar pelos itens com as setas de direção do teclado, e com um toque na barra de espaços você pode ativar ou desativar os scripts de acordo com o runlevel que é mostrado no cabeçalho das colunas.
Consulte as páginas do manual referente ao utilitário para mais opções:
$ man sysv-rc-config
É isso aí! Você pode ver mais informações sobre o assunto neste vídeo da Bóson Treinamentos:
loading...
-
Permissões De Acesso A Arquivos E Pastas Pelo Terminal No Linux
Permissões de acesso a arquivos e pastas no LinuxUsamos permissões no Linux para definir quem pode acessar arquivos e diretórios, e seu nível de acesso, que vai desde acesso total até permissão totalmente negada. Para estudarmos como funcionam as...
-
A Estrutura De Diretórios Do Linux
A estrutura de diretórios do Linux pode parecer um pouco estranha a princípio para quem vem do ambiente Windows. Por exemplo, não temos letras de unidade como C: e D:, e as partições são numeradas, entre outras diferenças.A estrutura dos sistemas...
-
Rcconf E Bum - Gerenciando A Inicialização De Serviços No Linux
Vamos falar hoje sobre duas ferramentas para configuração e controle dos serviços de sistema durante a inicialização: rcconf e bum. Pacote rcconf - Debian Runlevel Configuration Editor Esta ferramenta permite configurar os serviços do sistema...
-
Comando Jobs No Linux
No Unix, há uma pequena diferença entre processos e jobs. Um job tipicamente é uma linha de comandos, que pode incluir um único comando, um shell script, ou vários comandos conectados por pipes. Em uma cadeia de comandos com pipes, cada comando...
-
Permissões De Acesso A Arquivos E Diretórios E Comando Chmod
O Linux / Unix possui um sistema de permissões de acesso a arquivos e diretórios relativamente complexo.Neste sistema, existem três tipos de permissões básicas: leitura, escrita (gravação) e execução, representados respectivamente pelos caracteres...
Linux e Unix