Administração de sistemas operacionais Aula 04 Os níveis de inicialização do sistemas (runlevel) Prof. Esp. Diovani Milhorim Runlevel – inicialização do sistema Runlevel: No Linux e outros sistemas baseados no Unix o runlevel indica o modo de operação atual da máquina, definindo quais serviços e recursos devem permanecer ativos. O runlevel pode ser alterado a qualquer momento pelo root. Runlevel – inicialização do sistema Runlevel: No Linux os runlevels são numerados de 0 a 6. No nível 0 o sistema está parado, nenhum processo é executado. Este modo entra em ação quando desligamos o sistema via software. Runlevel – inicialização do sistema Runlevel: Nível 1 O nível 1 é chamado de single user mode é um modo de recuperação, onde temos ativa apenas a conta de superusuário. Não é possível usar a rede nem rodar programas gráficos. Neste modo é possível alterar as configurações do sistema, alterar as senhas dos usuários, etc. Runlevel – inicialização do sistema Runlevel: Nível 2 e 3 Nos níveis 2 e 3 já temos o modo de operação normal do sistema. Nestes modos o sistema inicializa em modo texto e depois de logado o usuário pode abrir o modo gráfico se desejar. A diferença entre os dois é que no modo 2 (também considerado um modo de recuperação) não existe suporte a rede. Runlevel – inicialização do sistema Runlevel: Nível 4 O nível 4 geralmente fica vago. Na maioria das distribuições ele equivale ao modo 3, enquanto em outras, como no Slackware, equivale ao modo de login gráfico. Runlevel – inicialização do sistema Runlevel: Nível 5 No nível 5 temos a inicialização com login em modo gráfico, default na maioria das distribuições atualmente. Runlevel – inicialização do sistema Runlevel: Nível 6 O modo 6 é reservado à reinicialização do sistema. Todos os serviços e programas são parados e o sistema é reinicializado via software. O modo 6 difere do modo 0, onde o sistema fica simplesmente parado, esperando ser desligado. Runlevel – inicialização do sistema Runlevel: O arquivo inittab O arquivo /etc/inittab guarda as configurações padrão(default) do processo de inicialização do sistema. Podemos definir neste arquivo: O runlevel padrão. Seqüência de teclas para reinicialização (ctrl+alt+del) Procedimento para falta de energia elétrica Procedimento para retorno de energia elétrica Número de consoles de terminal Número para consoles seriais Runlevel – inicialização do sistema Runlevel: O arquivo inittab É possível configurar o init através do arquivo /etc/inittab. O arquivo segue o seguinte formato: identificação:níveis_execução:ação:processo As linhas começadas com um “#” são ignoradas Runlevel – inicialização do sistema Runlevel: O arquivo inittab É possível alterar o nível de execução a qualquer momento, modificando o número do nível de execução diretamente no arquivo (segunda linha do exemplo), ou através do comando telinit. Runlevel – inicialização do sistema Runlevel: O arquivo inittab O comando telinit aceita como argumento o nível de execução para o qual se deseja mudar. Exemplo: telinit 2 irá levar o sistema ao nível de execução 2 telinit 1 modo monousuário telinit q fará com que o init releia seu arquivo de configuração (/etc/inittab). Para verificar o nível de execução de um sistema basta executar o comando runlevel Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Cada nível padrão de execução do sistema tem seus serviços específicos que serão inicializados durante o boot. Quanto mais baixo o runlevel menor a quantidade de serviços disponíveis (exceto o nível 6 – reboot) É possível configurar quais serviços estarão disponíveis e quais serão paralisados em um determinado runlevel. Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Existem dois estilos de init: o BSD e o SYS-V. Cada um tem suas peculiaridades. O Debian usa init SYS-V. Os scripts são armazenados em /etc/init.d e links são criados em /etc/rc?.d, onde o ? representa o runlevel. Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Nos diretórios /etc/rc?.d encontramos links simbólicos para os scripts do diretório /etc/init.d. Estes links tem seus nomes iniciados pelas letras “K” ou “S” seguidos por um valor númerico de dois dígitos. Antes de entrar em qualquer nível de execução, todos os scripts iniciados com 'K' são executados; esses scripts matam (param) serviços. Todos os scripts iniciados com 'S' são executados; esses scripts iniciam serviços. O número de dois dígitos seguido de 'K' ou 'S' indica a ordem na qual o script é executado. Scripts de menor valor numérico são executados primeiro. Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Todos os scripts em /etc/init.d/ aceitam um argumento que pode ser: start (iniciar) stop (parar) reload (recarregar) restart (reiniciar) force-reload (forçar-recarregar) Esses scripts podem ser usados mesmo depois que um sistema tenha sido iniciado para controlar vários processos. Runlevel – inicialização do sistema Runlevel: Modificando os runlevel padrão. Caso deseje adicionar novos serviços para iniciar junto com o boot, devemos adicionar o script no diretório /etc/init.d/<script>. Assim sendo, para invocar um script temos: /etc/init.d/<script> <opção> Para inserir este script como serviço de um runlevel temos de adicionar um link para ele no diretório /etc/rc?.d correspondente: #ln –s /etc/init.d/script /etc/rc?.d/<nome do link> Runlevel – inicialização do sistema Runlevel: Atividade 1) Altere o runlevel do seu sistema para o nível 1 utilizando o comando telinit. 2) Adicione o serviço cron ao runlevel 1. 3) altere o runlevel sistema para o nível 3. padrão do seu Runlevel – inicialização do sistema Runlevel: O utilitário rcconf O rcconf é um front-end para o updaterc.d. O rcconf permite você controlar que serviços são iniciados quando o sistema inicia ( :S ), ele irá mostrar uma tela onde você poderá ver o status de cada serviço [*] ou [ ]. Runlevel – inicialização do sistema Runlevel: O utilitário rcconf O rcconf trabalha obtendo a lista de serviços de /etc/init.d e observa nos diretórios /etc/rc?.d para determinar se cada serviço está ligado ou não no boot. Se o número NN (de /etc/rc?.d/NNname) não é 20 (padrão), rcconf salva o nome do serviço junto ao seu número em /var/lib/rcconf/services para que seja possível restabelecer o serviço para sua configuração original. Runlevel – inicialização do sistema Runlevel: O utilitário rcconf Instalação: # apt-get install rcconf Atualizar menus: # update-rcconf-guide Utilização: # rcconf Ele irá chamar uma tela demonstrando o que temos de inicialização e marcará para iniciar ou não iniciar (desativar).