Níveis de execução – System V


Comandos intermediários do GNU/Linux

Níveis de execução – System V

O padrão system V define, entre outras coisas, como deve ser a inicialização dos serviços do sistema. Ele trabalha com níveis de inicialização, os chamados RUNLEVELS, havendo oito deles.

A inicialização do sistema se inicia com um boot loader no qual o usuário escolhe qual sistema operacional ele irá iniciar  na máquina. Uma vez escolhido, o boot loader inicia o carregamento do kernel na memória RAM e passa o controle do sistema a ele. Uma vez que o kernel já esteja controlando a máquina é iniciada a fase de subir os serviços necessários para a utilização do sistema.

O runlevel é o grau de interação com o usuário que o sistema opera. O programa /sbin/init, invocado logo no início do processo de boot, identifica o nível de execução informado no carregamento do kernel ou no arquivo de configuração /etc/inittab e carrega os programas – srcipts e serviços – correspondentes, indicados nesse mesmo arquivo. Na maioria das distribuições GNU/Linux os sripts invocados pelo init ficam no diretório /etc/init.d
Os níveis de execução – System V

Em um sistema padrão System V, haverá oito níveis de inicialização, sendo eles:
  • Nível S – carrega o serviço mínimos essenciais ao sistema
  • Nível 0 – desliga o sistema
  • Nível 1 – modo monousuário
  • Níveis 2 a 5 – multiusuários, modo 2 é o padrão do Debian
  • Nível 6 – reboot para reiniciar o sistema
O prório arquivo /etc/inittab, é quem define os runlevels, trazendo também informações a respetio de cada um. O formato das entradas nesse arquivo é
id:runlevels:ação:processo
O termo id é um nome de até quatro caracteres para identificar a entrada do inittab. O termo runlevels é a lista dos runlevels para os quais a ação da entrada deverá ser executada. O ermo ação é o tipo de ação a ser tomada e o termo processo é o comando a ser acionado.
exemplo do arquivo configurado /etc/inittab
Os primeiros serviços a serem inicializados são aqueles do nível S que carregam por exemplo o hostname da máquina. Após esse nível ter sido concluído passa para o nível seguinte definido como padrão do sistema no arquivo /etc/inittab. Que no caso do Debian é o nível 2. Neste nível são iniciados os outros serviçoes não essesnciais, como servidores SSH, web, etc.

Alterando entre runlevels
Para alternar entre runlevels após o boot, pode-se usar o próprio comando init ou o comando telinit, fornecendo como argumento o número do runlevel desejado.
Para identificar em qual runlevel o sistema está operando, é utilizado o comando RUNLEVEL.



O sistema system V consiste em agrupar todos os scripts de inicialização do sistema em um único diretório /etc/init.d e criar links simbólicos para esses scripts dentro dos diretórios dos runlevels apropriados; cada runlevel possui o seu diretório, sendo ele localizados no /etc sobre o nome rc#.d, no qual o caracter # representa o número do runlevel.




Nesse diretório haverá links para os scripts de inicialização e/ou finalização dos serviços e o nome desses links indicará se o serviço deve ser iniciado ou finalizado e qual será a ordem que será seguida para isso.

Exemplo:

Se um serviço começar por S89 como é o caso do cron cujo nome dentro do rc2.d é S89cron, ele será o serviço a ser iniciado após todos os serviços com números menores que o dele sejam iniciados.
No caso de um desses links ter seu nome iniciado pela letra K esse serviço será finalizados quando o runlevel correspondente for iniciado. Dessa forma se existir um link chamdo K25ssh no runlevel 3 /etc/rc3.d, quando eu mudar para esse runlevel, se o ssh estiver ativo ele será o vigésimo quinto a ser deativado.
Um script de inicialização nada mais é do que um script que realiza verificações essenciais ao funcionamento do serviço em questão e uma estrutura do tipo case que aceitará os argumentos start-stop-restart dentro outro.

para iniciar um serviço basta dar o comando
# /etc/init.d/”nome-do-serviço” start
para finalizar um serviço basta dar o comando
# /etc/init.d/”nome-do-serviço” stop

Alterando o arquivo /etc/inittab

1 – Bloqueando o CTRL+ALT+DEL

1
procure pela linha ca:12345: ctrlaltdel:/bin/shutdown…
2
apague o que está escrito após a linha  /bin/ e adicione /echo -ne “insira o texto aqui”
2 – Inserindo mais terminais

1
procure pela linha 6:23:respawn:/sbin/getty 38400 tty6
2
abaixo dessa linha insira o comando com está na linha anterior, apenas mudando no final indicando o tty desejado
3
salve o arquivo com o comando :x!
após feitas as alterações execute o comando init q validar as alterações