quarta-feira, 11 de abril de 2012

101.3 Runlevel, Shutdown e reboot do Sistema

101 Arquitetura do Sistema

101.3 Runlevel, Shutdown e reboot do Sistema 

Olá pessoal, hoje estaremos estudando o seguinte contéudo cobrado na primeira prova da LPI-1:

101.3 Change runlevels and shutdown or reboot system  -  Ou seja precisamos saber, e entender como variar entre runlevels, trabalhar com o comando shutdown para desligar ou reiniciar sua máquina em modo texto.

Segue uma lista que tirei do site da lpi.org com o conteúdo que estaremos vendo:

Terms and Utilities

    /etc/inittab
    shutdown
    init
    /etc/init.d
    telinit




Runlevels

Os runlevels são níveis de execução no sistema, seria o modo com que o sistema vai se comportar.

Existem 7 níveis de execução:

init 0 - desliga o sistema

init 1 - modo mono usuário, inicia o sistema somente para o root

init 2 - sistema em modo multi-usuario, porém não é possível o acesso remoto ao sistema 

init 3 - modo default, ele está em modo multi-usuário, e com a rede ativa.

init 4 - para personalização 

init 5 - inicia em modo gráfico o sistema, em modo multiusuario e com acesso a rede.

init 6 - reboot do sistema


/etc/init.d/

Dentro deste diretório existem diversos scripts para startar, parar, verificar status de um serviço, em algumas distribuições estes scripts ficam em /etc/rc.d/init.d/ 

Vou dar um exemplo reiniciando um serviço do squid:

#/etc/init.d/squid restart   





Entendendo os Runlevels


Dentro do /etc  exitem diretórios que contém scripts referente aos runlevels, que são:




Os diretórios vão estar da seguinte forma:

/etc/rc?.d  =  no lugar da interrogação seria o número referente ao runlevel.

Então o que acontece quando você altera seu runlevel, ele irá executar os scripts que estão dentro de /etc/rc?.d, onde os mesmo são links apontando para /etc/init.d/ ou dependendo da distribuição vão estar em /etc/rc.d/init.d/

exemplo:  init 6 - O mesmo vai executar os scripts dentro de /etc/rc6.d/ onde os mesmos são links que estão apontando para /etc/init.d fazendo com que sua máquina seja reiniciada.

Vou dar um exemplo prático do uso do diretório /etc/rc2.d
Instalei na minha máquina de testes o squid, sabemos que os scripts  para estar verificando status, parar,  reiniciar o serviço do squid se encontra dentro de /etc/init.d , então vamos criar um link para caso sua máquina ou servidor desligar, ao iniciar novamente o serviço que starta o squid possa ser executado apartir do link dentro de /etc/rc2.d/  o mesmo vai chamar o script que fica dentro de /etc/init.d/squid

Vamos lá!!

# ln -s /etc/init.d/squid /etc/rc2.d/S20squid


    
Explicando o comando!!

O ln -s vai criar um link simbólico do script do squid, localizado em /etc/init.d/squid dentro de /etc/rc2.d/ 


O S20squid significa:

S = execução (S maiúsculo)
20 = ordem de execução
squid = nome dado ao link, pode ser outro nome, não precisa ser precisamente o nome do script.
Também tem o argumento "K" que se colocado na frente do número ele para o serviço.
 
Agora vamos entrar dentro do diretório /etc/rc2.d/ e executar o comando ls -la para ver com detalhes a listagem.

# cd /etc/rc2.d/

# ls -la





Abaixo coloquei um diagrama que mostra como seria a sequência quando alternamos entre os runlevels.



Como variar entre os runlevels

Bem todos nos que utilizamos o Gnu/linux como sistema operacional já alteramos runlevel, as vezes sem mesmo saber disso, por exemplo quando desligamos o computador, estamos variando nosso runlevel em execução para  "0".
Podemos variar nosso runlevel na inicialização do sistema, como também podemos variar com a máquina já inicializada, temos dois comandos para estar variando entre os runlevels, o comando "init" e "telinit" você vai executar ele da seguinte forma no terminal.

# init 6 - Aqui no caso estariamos variando nosso runlevel que na maioria das vezes vai ser 2 ou 3, que é o runlevel padrão (default) na maioria das distribuições, para o runlevel 6 vai, onde será executado os scripts para sua máquina estar reiniciando.

"Muito cuidado ao variar entre os runlevels, estando em um servidor ou mesmo em seu computador pessoal, podemos desligar ou reiniciar a máquina, perdendo tudo que estiver em aberto."


/etc/inittab


Dentro deste arquivo "inittab" que fica dentro do diretório /etc existe uma linha onde é definido o runlevel padrão (default) do sistema, para verificarmos o contédo podemos executar o seguinte comando:

# cat /etc/inittab | less



A distribuição que estou utilizando para testes é a Debian, como podemos ver na linha "The runlevel default" está definido o runlevel 2, no caso multiusuario e sem permissão de acesso remoto.

Na imagem podemos ver como funciona a ordem dos runlevels no Debian.

runlevel 0 = halt, desliga
runlevel 1 = modo single
runlevel 2 e 5 multi-usuário - sabemos que o runlevel 2 não tem permissão para acesso remoto
runlevel 6 = reboot
runlevel 4 = para testes
também temos o runlevel 3 que não consta, mas sabemos que é multiusuario, com a rede ativa.


Shutdown


O comando shutdown é usado para desligar ou reiniciar o sistema, com o comando é possível passar mensagens aos usuários logados no sistema e determinar a que horas ou minutos o sistema será desligado ou reiniciado.

Vamos ver algumas opções que são mais utilizadas:

-r - Reinicia o sistema após um determinado tempo, ou somente reinicia.

-h - Desliga o sistema após um determinado tempo, ou imediatamente.

-c - Cancela o shutdown

Vou dar alguns exemplos de utilização do comando:

# shutdown -r 00:00 "reiniciando o servidor para manutenção"

O comando diz que será reiniciado às 00:00 para manutenção, como diz na mensagem.

# shutdown -h now
Vai desliga o sistema imediatamente

# shutdown -r now
Reinicia o sistema imediatamente

# shutdown -h +10 "será desligado o servidor em 10 minutos para manutenção"

Servidor será desligado em 10 minutos

Também existem os comando halt, reboot e poweroff, estes também são utilizados para reinciar, desligar ou para o sistema.
Para mais informações destes comando recomendo a leitura de suas man pages.

Bem pessoal é isso, mais um módulo postado para estudos.
Até a próxima!



Nenhum comentário:

Postar um comentário