CPU 사용량이 적은 Python 프로세스를 종료하려면 스크립트가 필요합니다.

CPU 사용량이 적은 Python 프로세스를 종료하려면 스크립트가 필요합니다.

저는 매우 크고 복잡한 Python 프로그램을 만들었고 이제 여기에 심각한 버그가 있다는 것을 알았으므로 이를 식별하는 데 어려움을 겪고 있습니다. 저는 이 코드를 프로덕션 환경에서 사용하고 있으므로 코딩 문제가 발견되어 수정될 때까지 해결 방법을 구현해야 합니다. Python 프로그램의 CPU 사용량을 확인하고 지속적으로 x% 미만이면 종료하는 데 사용할 수 있는 bash 스크립트를 만들어야 합니다. 일단 죽으면 자동으로 다시 시작됩니다.

PID와 %CPU를 얻기 위해 다음 명령을 사용하고 있습니다.

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

2940 71.9 pythonpycode.py

x%cpu(위의 71.9)에 대해 %cpu를 어떻게 확인하고 필요한 경우 PID를 종료할 수 있습니까?

더욱이, 파이썬 프로그램은 통제를 벗어나거나 죽지 않을 것입니다. CPU가 5% 미만으로 떨어지고 그대로 유지되며 UI가 정지됩니다. 저는 bash를 처음 접해서 어디서부터 시작해야 할지 잘 모르겠습니다.

답변1

대략적인 시도는 다음과 같습니다.

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

bash는 부동 소수점 숫자를 처리할 수 없기 때문에 일반적으로 ${cpu%.*}정수로 자릅니다. 이것은 한 번만 실행됩니다. 계속하려면 cron 작업에 넣거나 루프에 넣습니다 sleep 5.

관련 정보