segunda-feira, 28 de maio de 2012

LPI Criando, Monitorando e Matando Processos

103.5 Criando, Monitorando e Matando Processos

Conhecimentos Principais
  • Executar Processos em Primeiro e Segundo Plano
  • Manter um programa em Execução mesmo após o Logout
  • Monitorar Processos Ativos
  • Selecionar e Localizar processos em Execução
  • Matar processos.

Comandos Trabalhados

  • &
  • bg
  • fg
  • jobs
  • kill
  • nohup
  • ps
  • top
  • free
  • uptime
  • killall 

Bem Pessoal, estou realizando a postagem sobre como trabalhar com processos no Linux através de linha de comando.

O Primeiro termo a ser trabalhado será o "&" que tem uma utilidade bem simples porém muito utilizada, no terminal digite: (Sem o símbolo $)


$ vi &

Aparentemente nada acontece, mas na realidade o processo foi iniciado e jogado automaticamente para segundo plano, com o comando:

$ bg 

Ele lista todos os processos e encontramos o processo vi, como estando em segundo plano. Através do comando fg [número do processo] (antes visto com o comando bg...) poderemos trazer o programa para foreground (primeiro plano):


$ fg 1

Agora pressione CTRL + Z, que isso jogará o processo novamente para segundo plano, e com o comando jobs poderemos novamente mostrar os processos em segundo plano, assim como o comando bg.


$ jobs

Poderemos matar processos com o comando kill, que podemos matar processos através do seu PID (Process Identifier), o primeiro passo para consegui-ló é através dos comandos ps ou top.

$ top


 Nesta tela poderemos verificar todos os processos em execução em tempo real, onde a primeira linha da esquerda informa o PID de cada processo, e o ultima linha mostra o nome do referido processo, bem semelhante aquela velha telinha do CTRL + ALT + DEL, do Windows. Porém nem sempre conseguimos localizar o que queremos com facilidade, para isso utilizamos o comando abaixo:


$ ps

Este comando sozinho mostra os processos iniciados através do terminal atual, para uma busca mais detalhada utilizamos a opção -aux que mostra todos os processos de todos os usuários em todos os terminais.


$ ps -aux

Com a utilização de filtros de pesquisa poderemos filtrar qualquer processo em execução, seja pelo nome ou qualquer outro critério adotado.


$ ps -aux | grep -w vi


-w foi utilizado para a pesquisa exata, retirando o -w o resultado deva ser bem semelhante...




Agora com o número do processo em mãos poderemos matar o processo, com o comando kill ou killall.

OBS: O Uso do comando kill sempre será necessário o número do processo, já o comando killall ele mata o processo pelo nome dele, ex: killall vi


kill [signal] [PID]

Onde sinal pode ser o nome dele ou o número que o identifica, precedido de -
Sinais úteis podem ser:
  • SIGINT, que possui o mesmo efeito de se pressionar Ctrl+C para interromper um programa
  • SIGSTOP, que possui o mesmo efeito de se pressionar Ctrl+Z para parar um programa
  • SIGCONT, faz o programa parado continuar a execução
  • SIGQUIT, que força o programa a fazer um core dump
  • SIGKILL, que finaliza o programa
O comando kill sozinho envia o sinal por padrão 15, o comando que realiza com que o programa seja forçado a encerrar é o SIGKILL que é representado pelo 9.

$ kill -9 23792

Demais conhecimentos do Tópico são bem mais simples...

O Comando free mostra a memória RAM livre, pode usar com as opções -b mostra em bytes, -k em kilobytes, -m megabytes e -g gibabytes.

O Comando nohup serve para que o programa quando executado através dele não seja interrompido quando o usuário realizar o logout, muito útil quando estamos realizando por exemplo um download longo através do wget.

O Comando uptime serve para mostrar a quanto tempo nosso sistema está ativo (máquina ligada) e o estado de carga do sistema nos últimos 5 10 e 15 min.

0 comentários:

© 2008 Por Leandro Souto Maior