Um nível de execução é um estado operacional predefinido de um sistema UNIX ou Linux que determina quais serviços e processos estão disponíveis após a inicialização.

O que é nível de execução?
Um nível de execução é um conceito em UNIX e Linux sistemas operacionais que define um estado específico da máquina, determinando quais processos, serviços e recursos do sistema estão ativos. Ele atua como uma estrutura para controlar a inicialização e o desligamento do sistema, permitindo administradores Gerenciar o ambiente de acordo com as necessidades operacionais. Cada nível de execução corresponde a um modo específico, como manutenção do sistema, operação multiusuário baseada em texto ou disponibilidade total da interface gráfica.
Ao inicializar, o sistema entra em um nível de execução padrão definido em sua configuração, e o processo init garante que o conjunto correto de serviços seja iniciado ou interrompido com base nesse nível. Ao alterar o nível de execução, os administradores podem adaptar rapidamente o sistema a diferentes tarefas, como solucionar problemas no modo de usuário único, executar sem rede por motivos de segurança ou habilitar serviços gráficos e de rede completos para uso regular. Esse mecanismo fornece uma maneira padronizada e eficiente de gerenciar o comportamento do sistema sem a necessidade de intervenção manual para cada serviço individual.
Diferentes níveis de execução do Linux
Aqui está uma tabela estruturada dos níveis de execução tradicionais do Linux SysV e suas finalidades:
| Nível de execução | Descrição | Caso de uso típico |
| 0 | Parada (desligamento) | Desliga o sistema com segurança. |
| 1 | Modo de usuário único | Modo de manutenção ou emergência com Acesso à raiz somente, sem networking. |
| 2 | Modo multiusuário sem rede | Fornece vários logins de usuário, mas desabilita serviços de rede (varia de acordo com a distribuição). |
| 3 | Modo multiusuário completo com rede | Modo padrão baseado em texto, não gráfico, com todos os serviços e redes habilitados. |
| 4 | Indefinido / definível pelo usuário | Raramente usado; disponível para configuração personalizada. |
| 5 | Modo multiusuário com rede e GUI | Inicializa em ambiente de desktop gráfico com rede completa. |
| 6 | Reinicie | Reinicia o sistema com segurança. |
Para que serve o Runlevel?
Os níveis de execução são usados para controlar o estado operacional de um Linux ou sistema UNIX, definindo quais serviços, processos e recursos do sistema devem estar ativos a qualquer momento. Eles permitem que os administradores gerenciem o comportamento do sistema durante a inicialização, o desligamento ou as transições entre diferentes modos de operação.
Por exemplo, um sistema pode ser colocado no modo de usuário único para solução de problemas, alternado para o modo multiusuário para operação normal. server operações ou inicializados em uma interface gráfica para uso em desktop. Ao definir ou alterar o nível de execução, os administradores podem habilitar ou desabilitar rapidamente grupos de serviços, conservar recursos do sistema, realizar tarefas de manutenção ou garantir que a máquina seja executada na configuração mais adequada para a função pretendida. Essa abordagem estruturada ajuda a manter a consistência, a segurança e a eficiência em diferentes ambientes.
Como verificar o nível de execução?
Você pode verificar o nível de execução atual em um sistema Linux usando comandos que relatam o estado operacional do sistema. Em sistemas tradicionais SysVinitGenericName sistemas, o comando runlevel exibe os níveis de execução anteriores e atuais, enquanto o comando who -r mostra o nível de execução atual com mais detalhes.
No moderno baseado em systemd distribuições, que substituem níveis de execução por tem como alvo, o comando equivalente é systemctl get-default para ver o alvo padrão e systemctl isolate para alternar para outro. Além disso, systemctl list-units --type=target fornece informações sobre alvos ativos, que mapeiam para níveis de execução como multi-user.target ou graphical.target.
Como alterar o nível de execução no Linux?

Alterar o nível de execução no Linux depende se o sistema usa o antigo SysVinitGenericName estrutura ou o moderno sistema sistema init.
Sistemas baseados em SysVinit
O nível de execução pode ser alterado temporariamente com o comando init ou telinit seguido do número do nível de execução. Por exemplo, executar init 3 alterna o sistema para o modo multiusuário sem uma interface gráfica, enquanto init 5 inicia o ambiente de trabalho gráfico. Para tornar a alteração permanente, o nível de execução padrão deve ser modificado no arquivo /etc/inittab, onde o sistema lê qual nível de execução usar. bota em por padrão.
Sistemas baseados em Systemd
Os níveis de execução são substituídos por tem como alvo. Para alternar temporariamente para outro destino, use systemctl isolate , como systemctl isolate multi-user.target para entrar no modo texto ou systemctl isolate graphical.target para iniciar a interface gráfica. Para alterar o padrão para inicializações futuras, execute systemctl set-default , que atualiza o link simbólico para o destino do sistema padrão.
Por que o nível de execução é importante?
Aqui está uma lista de razões pelas quais os níveis de execução são importantes em sistemas Linux e Unix:
- Controle de sistema. Os níveis de execução definem quais serviços e processos devem ser executados, dando aos administradores controle preciso sobre o estado operacional do sistema.
- Flexibilidade. Eles permitem a troca rápida entre diferentes modos, como o modo de usuário único para manutenção ou o modo gráfico para uso em desktop.
- guia de solução de problemas. Os administradores podem inicializar em ambientes mínimos (como nível de execução 1) para corrigir erros de configuração ou se recuperar de falhas.
- Gestão de recursos. Ao desabilitar serviços desnecessários em certos níveis de execução, o sistema pode conservar CPU, memóriae poder.
- Total. Níveis de execução mais baixos podem restringir o acesso a usuários e serviços, o que é útil ao isolar o sistema durante manutenção ou suspeita de comprometimento.
- Consistência. Eles fornecem uma estrutura padronizada para estados do sistema em diferentes sistemas do tipo Unix, simplificando a administração.
- Completa. Scripts e configurações vinculadas a níveis de execução simplificam a inicialização, o desligamento e as transições, reduzindo o trabalho manual.
Problemas de nível de execução
Aqui está uma visão geral dos problemas comuns de nível de execução e por que eles são importantes:
- Nível de execução padrão mal configurado. Se o nível de execução padrão do sistema (ou destino do systemd) estiver definido incorretamente, a máquina pode inicializar em um estado indesejado, como o modo gráfico em um server, ou um modo não conectado em rede em uma estação de trabalho, levando ao desperdício de recursos ou usabilidade limitada.
- Falha ao carregar serviços críticos. Em um determinado nível de execução, certos daemons Espera-se que sejam iniciados automaticamente. Se erros de configuração impedirem sua inicialização, o sistema poderá ficar sem rede, serviços de exibição ou até mesmo recursos essenciais de login, deixando-o parcial ou totalmente inutilizável.
- Incapacidade de alternar níveis de execução. Problemas com scripts de inicialização ou serviço dependências pode impedir que o sistema altere os modos dinamicamente. Por exemplo, alternar do nível de execução 3 (multiusuário baseado em texto) para o nível de execução 5 (gráfico) pode falhar se o gerenciador de exibição estiver configurado incorretamente ou ausente.
- Loops de inicialização ou travamentos. Uma configuração de nível de execução incorreta ou quebrada pode fazer com que o sistema tente carregar repetidamente serviços incompatíveis, resultando em reinicializações contínuas ou núcleo pânico. Isso geralmente acontece quando o nível de execução padrão aponta para um modo que requer indisponível Hardwares ou software.
- Comportamento inconsistente entre distribuições. De jeito nenhum Distribuições Linux trate os níveis de execução da mesma forma. Por exemplo, alguns usam o nível de execução 2 como o modo multiusuário padrão, enquanto outros usam o nível de execução 3 ou 5. Isso pode gerar confusão e configurações incorretas quando os administradores trabalham em vários sistemas.
- Transição para alvos do systemdOs sistemas Linux modernos substituíram amplamente os níveis de execução por alvos systemd. Embora tenham um propósito semelhante, as diferenças na terminologia e nos comandos podem causar problemas para administradores acostumados ao SysVinit, levando a erros no gerenciamento de serviços e na recuperação do sistema.
Qual é a diferença entre Target e Runlevel?
Aqui está uma tabela de comparação que explica a diferença entre níveis de execução e tem como alvo no Linux:
| Aspecto | Nível de execução (SysVinit) | Alvo (systemd) |
| Definição | Um estado numérico predefinido (0–6) que determina quais serviços e processos iniciam. | Uma unidade nomeada no systemd que agrupa serviços e define o estado do sistema. |
| Formato | Identificado por números (por exemplo, nível de execução 3 = multiusuário sem GUI). | Identificado por nomes descritivos (por exemplo, multi-user.target, graphical.target). |
| Arquivo de configuração | Controlado via /etc/inittab. | Gerenciado com arquivos de unidade em /etc/systemd/system/ e /lib/systemd/system/. |
| Flexibilidade | Estados fixos com personalização limitada (principalmente 7 níveis de execução). | Altamente flexível, permitindo destinos e dependências personalizados. |
| Estado padrão | Definido em /etc/inittab. | Definir com systemctl set-default . |
| Comando de alteração | Alterado temporariamente com init ou telinit . | Alterado temporariamente com systemctl isolate . |
| Extensibilidade | Não é facilmente extensível; está vinculado ao SysVinit legado. | Totalmente extensível; os administradores podem criar novos alvos para necessidades específicas. |
| Verificação do status atual | Verificado com runlevel ou who -r. | Verificado com systemctl get-default ou systemctl list-units --type=target. |