私は非常に大きくて複雑な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を終了できますか?
さらに、Pythonプログラムは制御を超えて死ぬことはありません。 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
。