Instâncias bash misteriosas usando muita CPU, como posso depurar?

4

Parece que tenho vários processos bash em execução que ocupam a maior parte da minha CPU. Esta é a saída de top -c :

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND         
20116 terdon    20   0 35288  14m  292 R 400.0  0.2   0:00.43 /bin/bash       
20106 terdon    20   0 35992  15m  280 R  95.9  0.2   0:00.65 /bin/bash       
20105 terdon    20   0     0    0    0 R  57.6  0.0   0:00.83 [bash]          

Esta é a saída de ps aux | grep bash | head -3 :

terdon  7487 45.3  0.0      0     0 ?        R    19:31   0:01 [bash]
terdon  7488 66.0  0.0      0     0 ?        R    19:31   0:01 [bash]
terdon  7530 23.0  0.2  37984 17408 ?        R    19:31   0:00 /bin/bash

Os PIDs mudam toda vez que eu executo o comando, então parece que algo está reaparecendo constantemente bash .

Detalhes:

  • Existem várias entradas [bash] . Se bem entendi [process name] significa que o processo foi iniciado sem argumentos de linha de comando.
  • Os PIDs mudam, então algo está gerando isso.
  • Eu fiz e efetuei o login (estou trabalhando no Cinnamon) e o problema persiste.

Agora, imagino que isso irá embora se eu reiniciar, minha principal pergunta é o que posso usar para rastrear esses processos?

top -c não ajuda, pgrep bash me fornece listas diferentes de PIDs, lsof /bin/bash apenas lista instâncias bash em execução e pstree as mostra como processos independentes.

Caso seja relevante, estou executando o Linux Mint Debian, kernel 3.2.0-4-amd64, GNU bash, versão 4.2.36 (1) -release.

EDITAR:

Desde então, reiniciei (precisei) e, como esperado, o problema desapareceu. Ainda estou interessado em sugestões úteis de como rastrear esses processos.

    
por terdon 03.07.2013 / 19:34

2 respostas

4

Dê uma olhada na saída de lsof | grep 'bash.*cwd' . Isso informará os diretórios de trabalho atuais dos processos.

Se você tiver pstree , dê uma olhada na saída. Se não, dê uma olhada na saída de ps aux -H . Isso lhe dirá quais processos possuem esses processos misteriosos.

Comece a procurar nos arquivos de configuração por algo suspeito. Aqui está uma lista incompleta dos que você deve verificar:

~/.bash*
~/.profile
/etc/profile
/etc/bash*
/etc/cron.*/*

O [process name] significa que ps não pode encontrar os argumentos desse processo, incluindo o argumento 0 que contém o nome do arquivo que foi executado para criar o processo. Isso significa que lsof /bin/bash não encontrará esses processos.

    
por 03.07.2013 / 20:13
1

Você também pode dar uma olhada na saída de:

ps -p <pid> -o pid,user,tty,comm,args

Alguns scripts de shell aparecerão como /bin/bash ou perl na saída do argumento top but args na saída de ps para fornecer o script exato em execução.

    
por 03.07.2013 / 20:27