Você está na página 1de 4

ARTIGO para Estudo

-==-=--=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Gerenciando Processos Autor KillerMoon 09/04/2003

Índice

» Gerenciando Processos
Gerencia de Processos

Entenda como os processos podem ser administrado em um sistema


operacional Linux

Você conhece um processo? Ja tentou criar? Ja dministrou algum processo? Se


vocÊ tem alguma duvida esse artigo
é para você.

Todas as tarefas atribuidas para o Linux é um processo. de um "ls" até um


"find -name *.c", todas essas tarefas
são consideradas processos. Você ja criou um processo e nem sabia :P

Tudo o que é executado no linux, gera um número de processo (PID), pode ser
manipulado através do mesmo.

Colocando a mão na massa, e controlando seus processos.

Execute:

# vi

Agora em outro terminal, digite:

# ps x | grep vi

1120 pts/1 S 0:00 vi

Olhe atentamente, tivemos um retorno, e na primeira coluna esta o número do


processo do comando utilizado vi (1120)

O comando ps lista os processos atuais. Existem vários parametros para este


comando. ps sem nenhum parametro
lista todos os processos do tty atual, a opção "x" lista todos os processos da
máquina e a "u" coloca o usuário
do processo.

# ps ux | grep vi

root 1136 0.8 6.6 8556 3616 pts/1 S 10:42 0:00 vi


Podemos ver, que agora na primeira coluna temos o nome do usuário, que
rodou o comando vi, e o seu numero de pid é 1136
Podemos rodar programas em background (segundo plano), mas não é muito
util fazer isso com um editor de texto, para colocar em background basta
apenas colocando um "&" atraz do comando.

# find / -name *.c &

Para visualizar os processos em segundo plano, usamos o comando jobs

# jobs
[1]+ Running find / -name *.c

Agora pode ver os programas que estão rodando em segundo plano em nossas
máquinas, o número que esta entre colchetes
é o numero do jobs, no caso so existe um processo em background (segundo
plano).

Podemos tirar o processo do segundo plano, usando o comando fg

#fg

Se tiver apenas um processo em background, não precisamos especificar qual


job queremos trazer para "foreground", se
tiver mais de um processo, devemos especificar o numero do jobs (numero
que esta entre colchetes)

Após assumir o job com o comando fg, você pode colocá-lo novamente em
background, usando a combinação de teclas
"CTRL+Z" e, em seguida, executar o comando bg, caso contrario seu proceso
ficará parado.

[1]+ Stopped find / -name *.c

#bg

# jobs
[1]+ Running find / -name *.c &

Agora, podemos matar um processo, lembra aquele usuário que consome uma
enorme carga de CPU, ripando MP3?

Matando um processo que esta em background.

Execute os comandos.

#find / -name *.c & (rodando o comando find em segundo plano)

# jobs
[1]+ Running find / -name *.c &
# kill %1
# jobs
[1]+ Terminado find / -name *.c

Facil né? Você tambem pode matar outros processos bastando especificar o
número do processo na frente do comando:

#kill (PID)

exemplo: Lembra do editor vi que abrimos no início do artigo?

# ps x | grep vi

1120 pts/1 S 0:00 v

#kill 1120

Agora olhe o terminal que estava rodando o editor vi, ele fechou né?

Se precisamos matar vários processos com o mesmo nome usamos o comando


killall, esse comando recebe o nome do
processo, e não seu numero de PID.

#killall vi

Processo executados por usuários são derrubados quando se faz um logout.


Quando precisamos manter um processo,
mesmo após o logout, precisamos executá-los imunes a "ungup", usando o
comando nohup.

#nohup tar -cf home_bkp.tar / &

Todos os processos do Linux, tem prioridade que vão de "19" (menos


significativas) a "-20" (mais significativas).
Todo processo criado pelo usuário comum, tem prioridade "0", o usuário pode
alterar a prioridade de seus processos
de "0" até "19", e o usuário root, pode controlar as prioridades dos processos
de qualquer usuário de "19" a "-20"

Para que alterar as prioridades dos processos, você deve estar se


perguntando, simples, para terminar mais rapido
o backup que você esta fazendo, que com certeza é bem mais importante do
que varias pessoas, baixando música da internet.

Trabalhando com prioriedades.

Existe duas maneiras de mudar a prioridade de um processo.

1) Executando um processo com prioridade nao default, atravez do comando


"nice".

nice -<prioridade> <comando> <parametro do comando>


$ nice -19 licq &
# nice --20 tar backup.tar &

OBS: no primeiro o usuário comum ($) esta usando o Licq, com uma
prioridade menos significativa (19), ja
no segundo exemplo o root (#) está fazendo backup do sistema, com uma
prioridade mais significativa (-20).
Repare que para usar uma prioridade negativa, você precisa colocar dois hífen
no parâmetro.

2) Alterar a prioridade do processo depois que ele estiver rodando com o


comando "renice"
#renice <nova prioridade> -p <numero do processo>

# renice -19 -p 1998


1998: prioridade antiga = 0; prioridade nova = -19

Esse é o começo, para você aprender a Gerenciar Processos na Sua Linux


BOX.

Por:
KillerMoon - Fausto S. Muehlbauer
fausto@projectlinux.com.br
uni: 115722841