Quando um sistema Linux é inicializado, ele entra em seu nível de execução padrão e executa os scripts de inicialização associados a esse nível de execução. Você também pode alternar entre os níveis de execução – por exemplo, há um nível de execução projetado para operações de recuperação e manutenção.
Tradicionalmente, o Linux usava scripts de inicialização no estilo System V – embora novos sistemas init eventualmente tornem os níveis de execução tradicionais obsoletos, eles ainda não o fizeram. Por exemplo, o sistema Upstart do Ubuntu ainda usa scripts de estilo System V tradicionais.
Índice
O que é um nível de execução?
Quando um sistema Linux é inicializado, ele inicia os processos init . O init é responsável por iniciar os outros processos no sistema. Por exemplo, quando você inicia seu computador Linux, o kernel inicia o init e o init executa os scripts de inicialização para inicializar seu hardware, ativar a rede e iniciar sua área de trabalho gráfica.
No entanto, não existe apenas um único conjunto de scripts de inicialização que o init executa. Existem vários níveis de execução com seus próprios scripts de inicialização – por exemplo, um nível de execução pode ativar a rede e iniciar a área de trabalho gráfica, enquanto outro nível de execução pode deixar a rede desabilitada e pular a área de trabalho gráfica. Isso significa que você pode passar do “modo de desktop gráfico” para o “modo de console de texto sem rede” com um único comando, sem iniciar e interromper manualmente os diferentes serviços.
Mais especificamente, o init executa os scripts localizados em um diretório específico que corresponde ao nível de execução. Por exemplo, quando você insere o nível de execução 3 no Ubuntu, o init executa os scripts localizados no diretório /etc/rc3.d.
Pelo menos, é assim que funciona com um sistema init tradicional System V – as distribuições Linux estão começando a substituir o antigo sistema init System V. Embora o Upstart do Ubuntu atualmente mantenha compatibilidade com scripts de inicialização SysV, é provável que isso mude no futuro.
The Runlevels
Alguns níveis de execução são padrão entre as distribuições do Linux, enquanto alguns níveis de execução variam de distribuição para distribuição.
Os seguintes níveis de execução são padrão:
- 0 – Parar (desliga o sistema.)
- 1 – Modo de usuário único (O sistema inicializa no modo de superusuário sem iniciar daemons ou rede. Ideal para inicializar em um ambiente de recuperação ou diagnóstico.)
- 6 – Reiniciar
Os níveis de execução 2-5 variam dependendo da distribuição. Por exemplo, no Ubuntu e no Debian, os níveis de execução 2 a 5 são iguais e fornecem um modo multiusuário completo com rede e login gráfico. No Fedora e no Red Hat, o nível de execução 2 fornece modo multiusuário sem rede (somente login no console), o nível de execução 3 fornece modo multiusuário com rede (somente login no console), o nível de execução 4 não é usado e o nível de execução 5 fornece modo multiusuário com rede e login gráfico.
Mudando para um nível de execução diferente
Para mudar para um nível de execução diferente enquanto o sistema já está em execução, use o seguinte comando:
sudo telinit #
Substitua # pelo número do nível de execução para o qual deseja alternar. Omita sudo e execute o comando como root se você estiver executando uma distribuição que não usa sudo.
Inicializando diretamente em um nível de execução específico
Você pode selecionar um nível de execução para inicializar a partir do carregador de boot – Grub, por exemplo. No início do processo de inicialização, pressione uma tecla para acessar o Grub, selecione sua entrada de inicialização e pressione e para editá-la.
Você pode adicionar single ao final da linha linux para inserir o nível de execução de usuário único (nível de execução 1). (Pressione Ctrl + x para inicializar depois.) Esta é a mesma opção do modo de recuperação no Grub.
Tradicionalmente, você poderia especificar um número como um parâmetro do kernel e inicializar nesse nível de execução – por exemplo, usando 3 em vez de simples para inicializar no nível de execução 3. No entanto, isso não parece funcionar nas versões mais recentes do Ubuntu – A Upstart não parece permitir. Da mesma forma, como você altera o nível de execução padrão dependerá da sua distribuição.
Embora o daemon Upstart do Ubuntu ainda emule o sistema de inicialização SystemV, muitas dessas informações serão alteradas no futuro. Por exemplo, o Upstart é baseado em eventos – ele pode parar e iniciar serviços quando ocorrem eventos (por exemplo, um serviço pode ser iniciado quando um dispositivo de hardware é conectado ao sistema e parar quando o dispositivo é removido). O Fedora também tem seu próprio sucessor para init, systemd.