| Aprenda Linux, 101: Níveis de execução, encerramento e reinicialização |
|
|
|
| Escrito por Ian Shields, Senior Programmer, IBM | |||||||||||||||||||||||||||||||||||
| Dom, 06 de Março de 2011 00:23 | |||||||||||||||||||||||||||||||||||
|
Resumo: Aprenda a encerrar ou reinicializar seu sistema Linux, avisar a usuários que o sistema está sendo desligado e alternar para um nível de execução mais ou menos restritivo. É possível usar o material neste artigo para estudar para o exame de certificação de administrador de sistema Linux LPI 101, ou apenas para aprender sobre encerramento, reinicialização e alteração de níveis de execução.
Neste artigo, aprenda a encerrar ou reinicializar seu sistema Linux, avisar a usuários que o sistema está sendo desligado e alternar para um nível de execução mais ou menos restritivo. Aprenda a:
A menos que disposto em contrário, os exemplos neste artigo usam um sistema Fedora 8 com um kernel 2.6.26. Os exemplos do upstart usam Fedora 13 com kernel 2.6.34 ou Ubuntu 10.10 com kernel 2.6.35. Os resultados em outros sistemas podem variar. Este artigo o ajuda a se preparar para o Objetivo 101.3 do Tópico 101 do exame 101 do Linux Professional Institute Junior Level Administration (LPIC-1). O objetivo tem um peso 3.
Para obter o máximo dos artigos nesta série, é necessário ter um conhecimento básico do Linux e um sistema Linux funcional para praticar os comandos cobertos neste artigo. Às vezes, versões diferentes de um programa formatam a saída de forma diferente; portanto, os seus resultados podem não ser exatamente iguais às listagens e figuras mostradas aqui. Em especial, o novo sistema upstart está alterando muitas coisas que podem ser familiares a usuários do tradicional processo de iniciação System V (consulte Init vs. Upstart para ver os detalhes). Este artigo é direcionado especificamente ao processo de iniciação System V tradicional, com apenas uma visão geral superficial das diferenças em relação ao upstart.
Níveis de execução definem quais tarefas podem ser realizadas no estado (ou nível de execução) atual de um sistema Linux. Cada sistema Linux suporta três níveis de execução básicos, mais um ou mais níveis para operação normal. Os níveis de execução básicos são mostrados na Tablela 1.
Além do básico, o uso de níveis de execução é diferente nas distribuições. Um conjunto comum de uso é mostrado na Tablela 2.
A distribuição Slackware usa o nível de execução 4 em vez do 5 para um sistema completo executando X Window system. Debian e derivados, como Ubuntu, usam um único nível de execução para o modo de multiusuário, geralmente o nível 2. Consulte a documentação para sua distribuição.
Quando um sistema Linux é iniciado, o nível de execução padrão é determinado a partir da entrada Edite esse valor se desejar que seu sistema inicie em um nível de execução diferente, por exemplo, nível 3. Há várias maneiras de alterar níveis de execução. Para fazer uma alteração permanente, é possível editar /etc/inittab e alterar o nível padrão, como você acaba de ver acima. Se você precisar apenas iniciar o sistema em um nível de execução diferente para um único boot, é possível fazer isso. Por exemplo, suponha que você acaba de instalar um novo kernel e precisa criar alguns módulos após o sistema iniciar com o novo kernel, mas antes de iniciar o X Window System. É possível colocar o sistema no nível de execução 3 para isso. Esse procedimento é feito no momento do boot, editando a linha do kernel (GRUB) ou incluindo um parâmetro após o nome do sistema selecionado (LILO). Use uma única linha para especificar o nível de execução desejado (3, neste caso). Vamos dar um exemplo do GRUB. Suponha que seu arquivo /boot/grub/menu.lst contenha a sub-rotina mostrada na Lista 2.
Para colocar esse sistema no nível de execução 3, espere até que as entradas de boot sejam exibidas, selecione esta entrada e digite "e" para editar a entrada. Dependendo das opções de seu GRUB, pode ser necessário pressionar uma tecla para exibir as entradas de boot e também digitar "p" e uma senha para desbloquear a edição. A tela do GRUB no nosso sistema Fedora 8 tem o visual mostrado na Figura 1.
Neste exemplo, você deve ver agora as linhas root, kernel e initrd. Mova o cursor até a linha começando com "kernel" e pressione "e" para editá-la. A tela do GRUB no nosso sistema Fedora 8 agora tem o visual mostrado na Figura 2.
Por fim, mova o cursor para o final da linha e inclua um espaço e o dígito "3". Você pode remover "quiet" ou modificar qualquer outro parâmetro, conforme desejar. A tela do GRUB no nosso sistema Fedora 8 agora tem o visual mostrado na Figura 3.
Por fim, pressione Enter para salvar as alterações e digite "b" para fazer o boot do sistema. Observação: As etapas para fazer isso usando LILO ou GRUB2 são diferentes das etapas do GRUB, mas o princípio básico de edição da maneira como o kernel é iniciado é o mesmo. Mesmo telas do GRUB em outros sistemas ou outras distribuições podem ter uma aparência bem diferente daquelas mostradas aqui. Geralmente estarão disponíveis prompts para ajudá-lo.
Após concluir seu trabalho de configuração no nível de execução 3, você provavelmente irá querer alterar para o nível 5. Felizmente, não é necessário reiniciar o sistema. É possível usar o comando
Após inserir
Se você usar o comando
Ao contrário de sistemas operacionais de computadores pessoais, como DOS ou Windows, o Linux é inerentemente um sistema de multiusuário. Entretanto, pode haver momentos nos quais isso é um problema, como quando é necessário recuperar um importante sistema de arquivos ou banco de dados ou instalar e testar novo hardware. O nível de execução 1, oumodo de usuário único, é sua resposta para essas situações. A implementação real varia de acordo com a distribuição, mas geralmente se inicia em um shell com apenas um sistema mínimo. Geralmente não há rede e não há daemons em execução (ou há muito poucos). Em alguns sistemas, é preciso autenticar fazendo login, mas em outros se vai direto para a linha de comando do shell como usuário raiz. O modo de usuário único pode salvar sua vida, mas também pode destruir seu sistema, portanto sempre tenha cuidado ao executar com autoridade de raiz. Reinicialize para o modo de multiusuário normal assim que concluir.
Assim como a alteração para níveis de execução de multiusuário regulares, também é preciso alterar para modo de usuário único usando
Embora seja possível usar
Por padrão,
Se um encerramento com atraso tiver sido emitido e o tempo ainda não tiver expirado, é possível cancelar pressionando Ctrl-c , se o comando estiver sendo executado em primeiro plano, ou emitindo
Você deve ter notado que nosso último exemplo não fez com que uma mensagem de aviso fosse enviada. Se o horário até o encerramento exceder 15 minutos, a mensagem não é enviada até 15 minutos antes do evento, como mostra a Lista 7. Lista 7 também mostra o uso da opção
Como dissemos anteriormente, também é possível usar Você deve aprender mais alguns comandos relacionados ao encerramento e reinicialização.
Se qualquer um desses for chamado quando o sistema não estiver no nível de execução 0 ou 6, o comando Para ver opções adicionais que podem ser usadas com esses comandos, bem como informações mais detalhadas sobre sua operação, consulte a man page.
Agora você deve estar se perguntando por que pressionar Ctrl-Alt-Delete em alguns sistemas causa uma reinicialização ou como tudo isso de nível de execução é configurado. Você se lembra do campo
Como sempre, as linhas que começam com # são comentários. Outras linhas têm vários campos com o seguinte formato: id
runlevels
Algumas das ações comuns que podem ser especificadas em /etc/inittab são mostradas na Tablela 3. Consulte as man pages do inittab para ver outras possibilidades.
Lista 9 mostra apenas a entrada do Ctrl-Alt-Delete da Lista 8. Agora você entende por que pressionar Ctrl-Alt-Delete faz com que o sistema seja reinicializado.
Você pode ter observado várias linhas na Lista 8, tais como
Neste exemplo,
Esses scripts usados pelo
Pode-se observar aqui que os serviços
Consulte as man pages do
Como vimos aqui, o método tradicional de boot em um sistema Linux é baseado no processo de inicialização System V do UNIX. Ele envolve carregar um disco de RAM inicial (initrd) e passar o controle para um programa chamado Um processo de inicialização alternativo chamado upstart foi introduzido no Ubuntu 6.10 ("Edgy Eft") em 2006. Ele substituiu o processo init no Ubuntu e no Fedora, entre outros, embora ainda haja vestígios do init, e embora o poder completo do upstart ainda não seja atingido por algum tempo. Ao contrário do conjunto estático de scripts de inicialização usado em sistemas anteriores, o sistema upstart é conduzido poreventos. Eventos podem ser acionados por mudanças no hardware, início ou interrupção de tarefas, ou por outros processos no sistema. Eventos são usados para acionar tarefas ou serviços, conhecidos coletivamente como tarefas. Por exemplo, a conexão de uma unidade USB pode fazer com que o serviço udev envie um evento block-device-added, o que faria com que uma tarefa definida verificasse /etc/fstab e montasse a unidade, se apropriado. Outro exemplo: um servidor da Web Apache pode ser iniciado apenas quando os recursos necessários de rede e de sistema de arquivos estejam disponíveis. O programa de inicialização do upstart substitui /sbin/init. Tarefas do upstart são definidas no diretório /etc/init e seus subdiretórios. O sistema upstart processa atualmente /etc/inittab e scripts de inicialização System V. Em sistemas como as liberações recentes do Fedora, /etc/inittab provavelmente contém apenas a entrada de ID da ação initdefault. Sistemas Ubuntu recentes não têm /etc/inittab por padrão, mas é possível criar um se você quiser especificar um nível de execução padrão.
Upstart também tem o comando initctl para permitir interação com o daemon de iniciação do upstart. Isso permite iniciar ou interromper tarefas, listá-las, obter seus status, emitir eventos, reiniciar o processo de iniciação e assim por diante. Lista 11 mostra como usar
Para saber mais sobre o upstart, consulte Recursos. Sua introdução a níveis de execução, encerramento e reinicialização do Linux está concluída.
Aprender
Obter produtos e tecnologias
Discutir
Ian Shields em muitos projetos Linux para a zona Linus do developerWorks Linux. Ele é um Programador Sênior na IBM em Research Triangle Park, NC. Ele se uniu à IBM em Canberra, Austrália, com Engenheiro de Sistemas em 1973, e desde então trabalhou em sistemas de comunicação e computação disseminada em Montreal, Canadá e em RTP, NC. Ele possui diversas patentes e publicou diversos papers. Sua licenciatura universitária foi em matemática pura e filosofia pela Australian National University. Ele é um M.S. e Ph.D. em ciência da computação pela North Carolina State University. Você pode entrar em contato com Ian através do endereço Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. .
|
|||||||||||||||||||||||||||||||||||
| Última atualização em Dom, 06 de Março de 2011 00:28 |






