Visite também: BR-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]

Tutoriais/Adm/processos

De UnderLinux Wiki

Visualizando os Processos, e Entendo seu Status


Hoje em dia manipular processos de um SO virou quase uma profissão. :-)

O gerenciamento de processos é uma tarefa normalmente muito utilizada em servidores de banco de dados. Pois a quantidade de processos que uma aplicação como um banco gera, é de extrema importância que as prioridades sejam configuradas adequadamente.

Tabela de conteúdo

Visualizando os processos da máquina

ps aux | more

  • ps: comando
  • a: todos os processos de kernel
  • u: de todos os usuários
  • x: de todos os terminais
  • | more : mostrar paginando

Vamos entender agora o que cada coluna nos mostra

  • user: usuário dono do processo
  • PID: Identificação do processo
  •  %CPU: % de uso do processador
  •  %mem: % de uso da memória (Memória RAM)
  • VSZ e RSS: Paginação (tamanho do processo)
  • TTY:Terminal de origem do processo ( ? processo de sistema)

STAT: R, S, D, Z e T

  • R - running = rodando
  • S - sleep = esperando
  • D - Deeth = morto
  • T - Traced = parado
  • Z - Zumbi = error

Variações:

  • < - prioridade maior que a padrão
  • N - prioridade menor que a padrão
  • T - processo em foreground
  • s - dono da sessão (PAI)
  • w - usando recurso Swap
  • TIME: Tempo que está ativo
  • COMMAND: Comando ou nome do processo
  • Outra opção interessante é a visualização dos processos em forma de árvore:

ps axf | more

ou

pstree

Para podermos acompanhar os processos em tempo real, podemos usar o comando top, já que o ps só nos da o status dos processos que estão no ar no momento do comando.

Planos de Execução

Trabalhar com níveis de plano de execução, pode nos ajudar por exemplo em casos que queremos executar uma aplicação e mantermos ainda o terminal livre, para continuar trabalhando no mesmo.

BACKGROUND - processo em segundo plano

FOREGROUND - processo em primeiro plano

  • & - inicia o processo em background
  • bg - coloca um processo já iniciado em background
  • fg - coloca um processo em foreground
  • jobs - lista processos em background
  • ctrl+z - para um processo que está em foreground

Exemplos:

updatedb &

Inicia o updatedb em modo background, deixando o terminal livre.

jobs -l

Visualizando os processos em background do terminal

fg <JOBID>

O comando fg mais o número do job , coloca o processo em foreground)

bg <JOBID>

O comando bg mais o número, coloca o processo em backgound)

Prioridade de Processos

A escala a baixo representa os valores de prioridade que um processo pode ter:

A coluna "NI" apresenta os valores de cada processo.

Os comandos para manipular os valores de cada processo são: o nice e o renice. O nice é usado apenas para declarar a prioridade de um processo quando o mesmo for iniciado, e o renice é o comando utilizado para trocar a prioridade de um processo já iniciado.

Exemplos:

nice -n -20 man ls

Inicia o comando man ls, com prioridade -20

ps lax | grep "man ls"

Visualiza o processo "man ls" <p class="code"> renice -p 10 <PID>

Troca a prioridade do processo para o valor "10")

Finalizando Processos

Não é muito raro processos darem erros e sermos obrigados a finaliza-los. Para matar-mos um processo não é nada lá tão complicado :P

kill <flag> <PID>

  • -1 = (reload no processo)
  • -15 = (termina um processo)
  • -9= ( mata um processo) obs: sem dó!
. Matando processos por usuário:

kill -9 `lsof -t -u ze`

Mata todos os processos do usuário "ze"

Uma boa dica é matar os processos usando o top, pois nele você encontra um banco de consulta com parâmetros que podem ser usados dentro dele mesmo para manipular os processos. Pode significar bastante se caso erramos alguma sintaxe tentando manipular o processo na mão; top = evita dor de kbeça :P

Autor

  • Marcos Vinicius M. da Silva Junior