저는 매우 크고 복잡한 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
.