Precisa de script para matar o processo python com baixo uso da CPU

0

Eu criei um programa python muito grande e complexo e agora sei que ele tem um bug sério que estou tendo dificuldade de definir. Estou usando esse código em um ambiente de produção, por isso preciso de uma medida de intervalo para implementar até encontrar e corrigir meu problema de codificação. Eu preciso criar um script bash que eu possa usar para verificar o uso da CPU do meu programa python e matá-lo se for consistentemente abaixo de x%. Uma vez morto, ele será reiniciado automaticamente por conta própria.

Estou usando o seguinte para obter meu PID e minha% de CPU

$ ps -eo pid -eo pcpu -eo command |grep python |grep pycode.py

2940 71.9 python pycode.py

Como posso verificar% cpu, que é 71.9 acima, em relação a x% cpu e depois matar o PID, se necessário.

Além disso, o programa python não vai fugir nem morrer. Ele simplesmente cai para menos de 5% da CPU e fica lá e a interface do usuário congela. Eu sou novo no bash, então eu realmente não sei por onde começar.

    
por user72055 15.09.2015 / 18:57

1 resposta

2

Aqui está uma tentativa crua:

read -r pid cpu rest < <(ps -eo pid -eo pcpu -eo command |grep python |grep pycode.py)
if (( ${cpu%.*} < 5 )) ; then
    kill -TERM $pid
fi

Usamos ${cpu%.*} para truncá-lo para um inteiro, já que o bash não pode manipular floats. Isso só é executado uma vez; se você quiser continuar, coloque-o em um cron job ou coloque-o em loop com sleep 5 ou o que for.

    
por 15.09.2015 / 19:05