Visualizando os Processos, e Entendo seu Status
por: Marcos Vinicius M. da Silva Junior
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.
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
(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:
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")
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 finaliza-los. Para matar-mos um processo não é nada lá tão complicado :P
Retirado de "http://underlinux.com.br/wiki/index.php/Tutoriais/Adm/processos"
Para iniciantes na minha opinião, é exelente.
Até mais.
Pela colaboração contínua (e põe contínua nisso) ao fórum...
Ponto Positivo!!!
Continue assim amigo!!!
Muito obrigado. Não se preucupe, que até onde me for possível estarei por aqui ajudando vocês nessa jornada.
"Se você não vive para sergir, não serve para viver."
Abraços