Pagina inicial » como » O que são “Runlevels” no Linux?

    O que são “Runlevels” no Linux?

    Quando um sistema Linux inicializa, 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 init estilo System V - enquanto novos sistemas init acabarão por se tornar obsoletos nos runlevels tradicionais, eles ainda não o fizeram. Por exemplo, o sistema Upstart do Ubuntu ainda usa scripts tradicionais do System V.

    O que é um runlevel?

    Quando um sistema Linux inicializa, ele inicia o nisso processos. O init é responsável por lançar 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, abrir a rede, iniciar sua área de trabalho gráfica..

    No entanto, não há 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 ignorar a área de trabalho gráfica. Isso significa que você pode sair do "modo de área de trabalho gráfica" para "modo de console de texto sem rede" com um único comando, sem iniciar e parar manualmente serviços diferentes.

    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ê entra no runlevel 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 do System V - as distribuições do Linux estão começando a substituir o antigo sistema init do System V. Enquanto o Upstart do Ubuntu atualmente mantém compatibilidade com scripts init do SysV, é provável que isso mude no futuro.

    Os Runlevels

    Alguns runlevels são padrão entre as distribuições Linux, enquanto alguns runlevels variam de distribuição para distribuição.

    Os seguintes runlevels são padrão:

    • 0 - Parada (Desliga o sistema.)
    • 1 - Modo de usuário único (O sistema é inicializado no modo de superusuário sem iniciar daemons ou rede. Ideal para inicializar em um ambiente de recuperação ou diagnóstico.)
    • 6 - Reinicialização

    Os runlevels 2-5 variam dependendo da distribuição. Por exemplo, no Ubuntu e no Debian, os runlevels 2-5 são os mesmos e fornecem um modo multiusuário completo com login em rede e gráfico. No Fedora e Red Hat, o nível de execução 2 fornece modo multiusuário sem rede (somente login de console), nível de execução 3 fornece modo multiusuário com rede (somente login de console), nível de execução 4 não é usado e 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 alternar 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 você deseja alternar. Omit sudo e execute o comando como root se você estiver executando uma distribuição que não usa sudo.

    Inicializando diretamente em um runlevel específico

    Você pode selecionar um runlevel para inicializar a partir do gerenciador de inicialização - 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 solteiro até o final do linux linha para inserir o runlevel de usuário único (nível de execução 1). (Pressione Ctrl + x para inicializar depois.) Isso é o mesmo que a opção de modo de recuperação no Grub.

    Tradicionalmente, você poderia especificar um número como um parâmetro do kernel e inicializá-lo nesse nível de execução - por exemplo, usando 3 ao invés de solteiro para inicializar o runlevel 3. No entanto, isso não parece funcionar nas versões mais recentes do Ubuntu - o 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.


    Enquanto o daemon Upstart do Ubuntu ainda emula o sistema init SystemV, muitas dessas informações serão alteradas no futuro. Por exemplo, Upstart é baseado em eventos - pode parar e iniciar serviços quando ocorrem eventos (por exemplo, um serviço pode iniciar 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.