Gerenciando Processos com o Shell
Este é o terceiro artigo de uma série, que visa a ser uma porta de entrada para o mundo GNU/Linux. Esta sequência, abordará os tópicos: comandos básicos para gerenciamento de processos, prioridade dos processos, runlevels e gerenciadores de serviços.
Parte 2: Prioridade de processos, níveis de execução e gerenciadores de serviços
Prioridade dos processos
A prioridade que um processo tem sob o processador, é obtida através da operação: PR + NI.- Os valores de PR podem variar de 0 a 20.
- Os valores de NI variam de -20 a 19.
O comando nice:
Este comando é utilizado para iniciar um processo com um valor de NI pré-definido. Sua sintaxe, é:
# nice -n NI comando
O comando renice:
Este comando altera o NI de um processo em execução a partir de seu PID. Sua sintaxe, é:
# renice NI PID
Runlevels (níveis de execução)
Durante o boot, o GNU/Linux executa diversos processos em uma ordem determinada, chamada de níveis de execução. Estes níveis determinam quais serviços serão inicializados durante o boot.Os níveis de execução do GNU/Linux, são 7. Sendo eles:
- 0 :: Desligamento rápido do sistema.
- 1 :: Single User. Executa somente o essencial. Utilizado para manutenção do sistema.
- 2 :: Multi User. Modo texto. Compartilhamento NFS desabilitado.
- 3 :: Multi User. Modo texto. Todos os serviços habilitados.
- 4 :: Não utilizado.
- 5 :: Multi User. Modo gráfico com todos os serviços.
- 6 :: Reinicialização do sistema.
Gerenciadores de inicialização de serviços
O GNU/Linux possui três grandes sistemas responsáveis por inicializar os serviços, durante o processo de boot (inicialização do sistema). Estes sistemas são: System V init Daemon, systemd e Upstream.System V Init Daemon
No init (System V Init Daemon), o runlevel padrão do sistema operacional, é definido na linha id:X:initdefault do arquivo /etc/inittab.As definição de quais processos serão inicializados em cada runlevel, é feita no diretório /etc/rcX.d (sendo X, o número referente ao runlevel de 0 a 6) e seus scripts.
Cada diretório possui os links simbólicos para os serviços referentes ao runlevel em questão. A nomenclatura padrão dos links, é:
(K | S) XX nomeScript
Sendo:
- K :: kill (termina um processo).
- S :: start (inicia um processo).
- XX :: número inteiro que representa a prioridade de execução.
* Importante: números menores, significam maior prioridade.
Ex.: K01postgresql - Mata o processo "postgresql" com prioridade 01.
- Gerenciar serviços:
Todos os scripts de serviços do sistema, podem ser encontrados no diretório /etc/init.d. A partir destes scripts, podemos administrar (iniciar, parar, reinicializar) manualmente os serviços do sistema.
systemd
No systemd, os arquivos de configuração são armazenados no diretório /etc/systemd/system.Seu runlevel padrão é definido pelo arquivo /etc/systemd/system/default.target, que é um link para o runlevel desejado, geralmente, localizado em /lib/systemd/system.
Para definir o modo texto, deve-se criar um link chamado multi-user.target que aponte para o runlevel desejado. Para o modo gráfico, o link deve chamar-se graphical.target.
Gerenciar serviços:
# systemctl opcao servico
Opções:
- Status :: Verifica o estado atual de um serviço.
- Stop :: Para a execução de um serviço.
- Start :: Inicia a execução de um serviço.
- Restart :: Reinicializa um serviço.
- Enable :: Habilita inicialização durante o boot.
- Disable :: Desabilita a inicialização durante o boot.
Upstart
No Upstart, os arquivos de configuração são encontrados no diretório /etc/event.d, e seus scripts de inicialização, ficam em /etc/init.O runlevel padrão do Upstart é configurado no arquivo /etc/init/rc-sysinit.conf. Para alterar o runlevel em tempo de execução, utiliza-se o comando telinit.
Como, em:
# telinit x # Sendo x = runlevel desejado
Gerenciar serviços:
# initctl opcao servico
Opções:
- Start :: Inicia um serviço.
- Stop :: Interrompe a execução de um serviço.
- Status :: Mostra o estado de um serviço.
- List :: Lista todos os serviços.
Referências
- Ribeiro, Uirá. Certificação Linux: Guia para os Exames LPIC-1, CompTIA Linux+ e Novell Linux Administrator.
- Linux Man Pages
mai um favoritado.