2016-06-17 5 views
0

実行中のプロセスで使用可能なリソースを変更する方法はありますか?Python?つまり、私はMax open filessofthardの制限を変更したいと思います。プロセスに利用可能なリソースをPythonから

私はulimit -n 1024000を使用し、そのシェルからプロセスを起動できますが、そのプロセスをあらかじめ停止する必要があることがわかります。

私はまたprlimitを知っていますが、Wheezy 7.6にはutil-linux 2.20.1-5.3で利用できません。

のPython resourceモジュールは明らかに

私はgdbでそれを行う方法を説明しており、以下のblog articleを発見したと私はちょうど似た何かがPythonに存在することを願っています...ただ自分自身のための制限を変更することができます。

本質的に私は、setrlimitを実行するプロセスをPythonプログラムから呼び出す方法を尋ねていると思います。

答えて

1

resourceライブラリをもう一度見てください。関数resource.prlimit()は、最初の引数としてpidをとり、そのIDによるプロセスが見つからない場合はProcessLookupErrorを生成します。だから私はそれがまさにあなたが探しているものだと信じています。

resource.prlimit(pid, resource[, limits])

1つの関数にsetrlimit()getrlimit()を組み合わせて、任意のプロセスのリソース制限を取得および設定するためにサポートしています。 pidが0の場合、呼び出しは現在のプロセスに適用されます。 [...]

limitsが指定されていない場合、この関数はプロセスpidのリソース制限を返します。 limitsが指定されると、プロセスのリソース制限が設定され、元のリソース制限が返されます。

この機能はPython 2.7にはないということです。うまくいけば、あなたはこの1つのタスクのためにあなたのつま先をPython 3に浸すことができます。

+0

申し訳ありませんが、おそらく私の質問に間違ったタグを付けました。 'python2.7'でも動作するはずなので、質問タグを更新しました。あなたに感謝しますが、 'python3'がこの機能を持っていることを知っておいてよかったです。 –

+0

私はそれがpython 2.7から利用できないことに気付きました。編集。 – alexis

+0

他にもたくさんの理由で、Python 3に切り替えるだけです:-) – alexis

関連する問題