Tag: top

Como matar (kill) um processo pelo nome do programa no Linux

Hoje precisei criar um script no Linux que matasse um processo pelo nome, e não pelo número. Resolvi compartilhar aqui no blog:

#!/bin/bash
# Autor: Tiago Passos

SHELL=/bin/sh
PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin

#SCRIPT QUE MATA (PELO NOME) O PROGRAMA ESPECIFICADO

#INFORME O NOME (OU TRECHO DO NOME) DO PROGRAMA QUE VOCE QUER MATAR
programa=nano

#NUMERO DO PROCESSO DO PROGRAMA
processo=$(ps -ef | grep $programa | grep -v grep | awk '{print $2}')

kill $processo >> /var/log/killpelonome

Também é possível usar o pgrep nessa lógica, e ficaria até mais limpo, mas pro meu caso específico não deu pra usar. Isso porque estava querendo matar (inicialmente) um programa executado pelo java, e precisaria idenficar esse programa pelos parâmetros que estavam sendo passados.

O pgrep (até onde sei) não identifica os parâmetros, mas apenas o nome, então não funcionaria em todas as situações.


Como descobrir no número do processo de um programa (Ex.: java) no CentOS Linux

Eventualmente precisamos saber o número do processo de um programa.

Os números de todos os processos rodando no sistema podem ser obtidos a partir do comando:

ps aux

Se você quizer sabe o número – e apenas o número – de processo de um programa específico, como por exemplo, o Java? Você pode fazer essa forma:

/sbin/pidof java

Caso você queira outras informações, além do número do precesso, pode fazer dessa forma:

ps aux | grep java

Procedimento testado no CentOS Linux 6.3


O que significa o load average, do comando top, no Linux?

Um dos recursos "emergenciais" para que um administrador de sistemas Linux consiga entender um eventual problema com uma máquina é o load average.

Na verdade, é um conjunto de três números (Ex.: load average: 0.39, 0.66, 0.85) que dão a média de utilização de CPU em intervalos de tempo. Mas como interpretar esses valores?

O primeiro valor representa a média no último 1 minuto, o segundo 5 minutos, e o terceiro 15 minutos. Se você possui um servidor com apenas um núcleo, o ideal é que o load average esteja em 1.00.

Um valor de 1.00 significa que o processador está 100% utilizado, e não tem nenhuma sobrecarga. Um valor de 1.50 significa que o processador está com 100% de uso, e 50% de sobrecarga. E assim por diante.

Se seu servidor tiver 2 processadores (núcleos), o valor ideal é 2.00. Se tiver 3 processadores, o valor ideal é 3.00. E assim por diante.

Mas e se o valor estiver sempre alto, quer dizer que temos que colocar mais processadores?

Não. Pode ser ocasionado por vários fatores. Ex.: Disco lento ou com problemas, rede lenta, pouca memória (fazendo swap) etc.

Se o valor estiver muito baixo, também não quer dizer que é melhor. Pode ser que por algum dos motivos citados a cima, o processador não esteja conseguindo utilizar todos os recursos.

Esse valores também podem ser obtidos a partir do comando uptime. O valor de carga no momento atual (sem considerar a média) pode ser obtido a partir do comando: cat /proc/loadavg

Mais informações:


  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress