2 de outubro de 2009

Processos

Características:
­ Proprietário do processo;
­ Estado do processo (em espera, em execução, etc);
­ Prioridade de execução;
­ Recursos de memória.


Atributos de um processo
­ PID (identificação do processo)
­ PPID (identificação do processo pai)
­ UID (identificação do usuário que criou o processo)
­ GID (identificação do grupo ao qual pertence o processo)


Estado de processos
Um processo pode passar por vários estados. Quando um processo é criado, isso não significa que ele será imediatamente executado. Alguns processos podem ser temporariamente parados para que o processador possa executar um processo com maior prioridade.

O Linux trabalha com quatro tipos de estados:

/Executável (running): o processo pode ser executado imediatamente;

/Dormente (waiting): o processo precisa aguardar alguma coisa para ser
executado. Só depois dessa "coisa" acontecer é que ele passa para o estado
executável;

/Zumbi (zombie): o processo é considerado "morto", mas, por alguma razão,
ainda existe;

/Parado (stopped): o processo está "congelado", ou seja, não pode ser
executado.



Classificação de processos quanto a execução

/Foreground (primeiro plano): são inicializados no terminal de comandos, podem interagir com os usuários e exibem sua execução na tela. A desvantagem
desse tipo de processo é que ele prende o prompt e isso impede a execução de novos processos nesse terminal.

/Background (segundo plano): são inicializados no terminal de comandos, NÃO podem interagir com os usuários e NÃO exibem sua execução na tela. A vantagem desse tipo de processo é que ele NÃO prende o prompt e isso NÃO impede a execução de um novo processo nesse terminal.

/Interativo: são inicializados a partir de um terminal do usuário e são controlados por ele, usamos os comandos CTRL + Z, CTRL + X, fg, bg e jobs para trabalhar com esse tipo de processo.

/Lote (batch): são processo controlados pelos comandos at, batch e cron.




Gerenciando os Processos do seu Servidor


\ps
O comando ps exibe todos os processos sendo executados no servidor.

# ps ­e => exibe todos os processos em execução com seus respectivos PID.
# ps ­t tty[n] => exibe todos os processos em execução no referido terminal.
# ps ­u login_name => exibe todos os processos em execução pelo referido usuário.
# ps ­f => exibe informação completa dos processos rodando.

# ps aux
É opção mais usada para verificar processos.
a ­ mostra todos os processos existentes;
u ­ exibe o nome do usuário que iniciou determinado processo e a hora em que isso ocorreu;
x ­ exibe os processos que não estão associados a terminais;

Campo Conteúdo
USER Nome do usuário do proprietário do processo.
PID ID (identificador) do processo.
%CPU Porcentagem de recursos de CPU que este processo usa.
%MEM Porcentagem de memória real que este processo usa.
VSZ Tamanho virtual do processo.
RSS Resident Set Size (número de páginas na memória)
TTY ID de terminal (? ­ Não depende de terminal)
STAT Estado do processo. (R, S, Z, D, T )
START Horário em que o processo foi iniciado
TIME Tempo de CPU que o processo consumiu
COMMAND Nome do comando e argumentos
STAT ­ indica o estado atual do processo, sendo representado por uma letra:
R ­ executável;
D ­ em espera no disco;
S ­ Suspenso;
T ­ interrompido;
Z ­ Zumbi.
W ­ processo paginado em disco;
< ­ processo com prioridade maior que o convencional;
N ­ processo com prioridade menor que o convencional;
L ­ processo com alguns recursos bloqueados no kernel.



\pstree
O comando pstree é usado para visualizar a árvore de processos.
# pstree



\top
O comando top é um monitor do sistema que mostra a atividade do processador em tempo real. Exibindo uma lista das tarefas no sistema que usam com mais intensidade a CPU e fornecendo uma interface interativa para manipulação dos processos.

Opções do Top
# top d [tempo] – Atualiza a tela após o tempo determinado
s – Diz ao top para ser executado em modo seguro
i – Inicia o top ignorando o tempo de processos zumbis
c – Mostra a linha de comando ao invés do nome do programa



\jobs
O comando jobs lista os processos em execução pelo shell que estão em background. Veja a sintaxe:
# jobs ­l
[2]­ 1245 Running asmixer &
[3]+ 1333 Running openoffice &



\fg
Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Você deve usar o comando jobs para pegar o número do processo
rodando em segundo plano ou interrompida, este número será passado ao comando fg para ativá­lo em primeiro plano.
Exemplos:
# jobs ­l
[2]­1245 Running asmixer &
# fg 2
asmixer



\bg
Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, devemos primeiro interromper a execução do comando com CTRL+Z; será mostrado o número da tarefa interrompida. Use este número com o bg para iniciar a execução em segundo plano.

Exemplos:
# fg 2
asmixer
Interropendo: CTRL+Z => [2]+ Stopped asmixer)
# bg 2



\fuser
Mostra qual processo faz uso de um determinado arquivo ou diretório.
Sua sintaxe é:
# fuser ­opção caminho (do arquivo ou diretório)

Opções:
­k ­ finaliza o processo que utiliza o arquivo/diretório em questão;
­i ­ deve ser usada em conjunto com a opção k e serve para perguntar se a finalização do processo deve ser feita;
­u ­ mostra o proprietário do processo;
­v ­ o resultado é mostrado em um padrão de exibição semelhante ao comando ps.


Por exemplo, para ver quem está acessando o cd­rom, digite:
# fuser ­u /mnt/cdrom



\nohup
Executa um comando ignorando os sinais de interrupção. O comando poderá ser executado até mesmo em segundo plano caso seja feito o logout do sistema.
Com o nohup você NÃO fica preso ao terminal, assim poderá colocar qualquer processo em execução e fechar o terminal ou shell.

Exemplos:
# nohup [_comando a ser executado_]
# nohup cp ­a /etc /tmp

OBS: As mensagens de saída do “nohup” são direcionadas para o arquivo nohup.out do diretório corrente.



\nice
Configura a prioridade da execução de um comando ou programa.

Exemplo:
# nice ­n [número]

A prioridade de execução de um Programa/comando pode ser ajustada de ­20 (a mais alta) até 19 (a mais baixa). A regra é inversamente proporcional, quanto menor for o número maior sua prioridade.

Exemplo:
# nice ­n ­19 find / ­name apropos


\renice
Configura a prioridade da execução de um comando ou programa que já está em execução. O renice segue o mesmo intervalo de prioridades que o nice, mas precisamos passar o PID do processo que será priorizado.

Exemplo:

#renice ­20 ­p PID
Para obter o PID do processo, use os comandos já visto anteriormente.


\kill
Esse comando permite cancelar processo em execução, desde que você tenha permissão para isso, ou seja, que você seja superusuário ou dono do processo.

Exemplo:
# kill PID
# kill ­9 385

Onde :
­9 – É a opção do kill que força o processo ser fechado independente de qualquer coisa.
385 – É o número do processo obtido pelo comando ps ­aux, que você deseja cancelar


\killall
Ele é idêntico ao kill, mas ele finaliza processo através do nome, ou seja, última coluna do comando ps.

# killall [_processo_]

Exemplo:
# killall ­9 inetd

Nenhum comentário: