Processo de bash com 100% de uso de cpu. Como solucionar problemas?

1

Eu tenho um script bash que está em um estado executável com 100% de uso da CPU no espaço do usuário. Existe uma maneira que eu possa inspecionar mais de perto o que está causando o problema, sem matar o processo, como fazer um rastreamento de pilha?

    
por barrrista 11.06.2015 / 01:07

2 respostas

2

Dê uma olhada no seu processo com strace :

strace -p <pid_of_your_process>
    
por 11.06.2015 / 05:53
0

Execute o script como sh -x yourscript . Isso imprimirá todos os comandos que está sendo executado e você poderá ver onde fica preso.

Eventualmente, você pode adicionar strace ao comando que desacelera as coisas para verificar suas chamadas para as funções do sistema. Isso gera cargas de saída para stderr. Você pode redirecionar para um arquivo de log como strace yourprogram 2> log

Outra possibilidade, que realmente envolve saber mais sobre os programas que são chamados, é conectar-se aos processos em execução usando gdb . Você pode descobrir qual processo ocupa 100% com top . Conecte-se a um programa em execução com

gdb program 1234   (where 1234 is the 'pid' of 'program')
    
por 11.06.2015 / 02:36

Tags