subprocess.callを使用してPythonプロセスからスポーンする外部コマンドラインアプリが取る時間とCPUを制限する必要があります。これは主に、スポーンされたプロセスがスタックしてCPUを99%に固定することがあるためです。
niceとulimitはこれを行うための合理的な方法のように見えますが、それらがサブプロセスとどのように相互作用するかはわかりません。
- 制限は次のようになります。
- 60秒以上かかる場合は、プロセスを強制終了します
- CPUの20%に制限する
- サブプロセスを生成するPythonプロセスではなく、サブプロセスにリソース制限を適用したいと思います。
subprocess.callによって生成されたプロセスにniceとulimitを適用する方法はありますか?より良いPythonネイティブの代替手段はありますか?
これはLinux(ubuntu)システム上にあります。