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.

[ Hits: 30.274 ]

Por: rafael silveira gomes em 05/05/2014


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

Página anterior    

Páginas do artigo
   1. Comandos básicos: gerenciamento de processos
   2. Prioridade de processos, níveis de execução e gerenciadores de serviços
Outros artigos deste autor

Gerenciando arquivos com o Shell

Gerenciamento de Discos com o Shell

Introdução ao Shell

Leitura recomendada

A Origem dos Nomes (parte 2)

Por que utilizar o software livre na educação?

Resumo LPI 102: Tópico 107 - Tarefas Administrativas

O que é o Linux

Slitaz: Guia Rápido

  
Comentários
[1] Comentário enviado por albfneto em 05/05/2014 - 11:18h

Como eu falei, seria interessante que citasse, aqui nos Comentários, os links para as Partes Anteriores, 1 e 2.
mai um favoritado.

[2] Comentário enviado por rsilveiragomes em 13/05/2014 - 12:46h

Links para os outros artigos da série:

Parte 1:
http://www.vivaolinux.com.br/artigo/Introdueccedileatildeo-ao-Shell

Parte 2:
http://www.vivaolinux.com.br/artigo/Gerenciando-arquivos-com-o-Shell

[3] Comentário enviado por removido em 14/05/2014 - 19:54h

Parabens cara, claro e objetivo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts