6Jul

Quais são os "runlevels" no Linux?

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 runlevels - 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 do sistema de estilo V - enquanto os novos sistemas init acabariam com os níveis de execução tradicionais obsoletos, eles ainda não. Por exemplo, o sistema Upstart do Ubuntu ainda usa scripts tradicionais do sistema V-style.

O que é um runlevel?

Quando um sistema Linux é inicializado, ele lança init processos. Init é responsável por lançar os outros processos no sistema. Por exemplo, quando você inicia seu computador Linux, o kernel inicia init, e init executa os scripts de inicialização para inicializar seu hardware, criar redes, iniciar sua área de trabalho gráfica.

No entanto, não existe apenas um único conjunto de scripts de inicialização que 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 gerar redes e iniciar a área de trabalho gráfica, enquanto outro nível de execução pode deixar a rede desabilitada e ignorar a área de trabalho gráfica. Isso significa que você pode passar do "modo de desktop gráfico" para "modo de console de texto sem rede" com um único comando, sem iniciar e parar manualmente diferentes serviços.

Mais especificamente, init executa os scripts localizados em um diretório específico que corresponde ao nível de execução. Por exemplo, quando você entra no runlevel 3 no Ubuntu, init executa os scripts localizados no diretório /etc/ rc3.d.

Pelo menos, é assim que funciona com um sistema tradicional System V init - as distribuições Linux estão começando a substituir o antigo sistema System Init. Enquanto o Upstart do Ubuntu atualmente mantém a compatibilidade com os scripts de iniciação SysV, isso provavelmente mudará no futuro.

Os Runlevels

Alguns níveis de execução são padrão entre distribuições 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 inicia no modo superusuário sem iniciar os daemons ou a rede. Ideal para inicializar em um ambiente de recuperação ou diagnóstico.)
  • 6 - Reiniciar

Os níveis de execução 2-5 variam de acordo com a distribuição. Por exemplo, no Ubuntu e Debian, os níveis de execução 2-5 são os mesmos e oferecem um modo multiusuário completo com conexão em rede e login gráfico. No Fedora e no Red Hat, o runlevel 2 fornece o modo multiusuário sem rede( somente logon do console), o runlevel 3 fornece o modo multiusuário com rede( somente logon do console), o runlevel 4 não é usado e o runlevel 5 fornece o modo multiusuário comrede e login gráfico.

Alternar para um nível de execução diferente

Para alternar para um nível de execução diferente enquanto o sistema já estiver em execução, use o seguinte comando:

sudo telinit #

Substitua # pelo número do nível de execução ao qual você deseja mudar. Omita sudo e execute o comando como root se você estiver executando uma distribuição que não use sudo.

Inicializando diretamente para um nível de execução específico

Você pode selecionar um nível de execução para inicializar a partir do carregador de inicialização - Grub, por exemplo. No início do processo de inicialização, pressione uma tecla para acessar Grub, selecione sua entrada de inicialização e pressione e para editá-la.

Você pode adicionar único ao final da linha linux para entrar no nível de execução de usuário único( nível de execução 1).(Pressione Ctrl + x para inicializar depois). Essa é 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 você inicializaria nesse nível de execução - por exemplo, usando 3 em vez de único para inicializar para o nível de execução 3. No entanto, isso não parece funcionar nas versões mais recentesdo Ubuntu - Upstart não parece permitir isso. 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 emula o sistema init SystemV, muitas dessas informações irão mudar no futuro. Por exemplo, o Upstart é baseado em eventos - pode parar e iniciar serviços quando ocorrem eventos( por exemplo, um serviço pode ser iniciado quando um dispositivo de hardware está conectado ao sistema e parar quando o dispositivo é removido). O Fedora também possui seu próprio sucessorpara init, systemd.