Visualizando processos, entendo seus status

Por:
Visualizando processos, entendo seus status

Hoje em dia manipular processos dentro do sistema operacional virou quase uma profissão. ūüôā

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

Visualizando os processos da máquina:

# ps aux | more

Onde:

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

imagem1
Vamos entender agora o que cada coluna nos mostra:

texto1
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 mostra o status dos processos que estão no ar no momento do comando.

imagem2

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

(o comando fg mais o PID do processo , coloca o processo em foreground)

#bg

(o comando bg mais o PID do processo, coloca o processo em backgound)

Prioridade de Processos

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

imagem2
A coluna “NI” apresenta os valores de cada processo.

imagem3
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”)

imagem4

# renice -p 10

(troca a prioridade do processo para o valor “10”)

Finalizando Processos

Não é muito raro processos darem erros e sermos obrigados a finalizá-los. Não é nada complicado matar um processo:

#kill

-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”)

imagem5
Uma boa dica é matar os processos usando o top, pois nele você encontra um banco de consulta com parâmetros que podem ser usados para manipular os processos. Pode significar bastante em casos onde você erra a sintaxe do comando tentando manipular o processo na mão.

– Todos os direitos reservados – Marcos Vinicius M. da Silva Junior –

Sobre o Autor

Redes Sociais:

Deixe seu coment√°rio

X