リソースの使用は下に述べる setrlimit() 関数を使って制限 することができます。各リソースは二つ組の制限値: ソフトリミット (soft limit) 、およびハードリミット (hard limit) 、で制御されます。 ソフトリミットは現在の制限値で、時間とともにプロセスによって下げたり 上げたりできます。ソフトリミットはハードリミットを超えることは できません。ハードリミットはソフトリミットよりも高い任意の値まで 下げることができますが、上げることはできません。(スーパユーザの 有効な UID を持つプロセスのみがハードリミットを上げることができます。)
制限をかけるべく指定できるリソースはシステムに依存します。指定できる リソースは getrlimit(2) マニュアルページで解説されています。 以下に列挙するリソースは背後のオペレーティングシステムがサポートする 場合にサポートされています; オペレーティングシステム側で値を調べたり 制御したりできないリソースは、そのプラットフォーム向けのこのモジュール 内では定義されていません。
resource) |
(soft, hard)
を返します。無効なリソースが
指定された場合には ValueError が、背後のシステム
コールが予期せず失敗した場合には error が送出されます。
resource, limits) |
(soft, hard)
による二つの整数で、
新たな制限を記述しなければなりません。現在指定可能な最大の制限
を指定するために -1
を使うことができます。
無効なリソースが指定された場合、ソフトリミットの値がハードリミット の値を超えている場合、プロセスが (スーパユーザの有効な UID を持って いない状態で) ハードリミットを引き上げようとした場合には ValueError が送出されます。背後のシステムコールが予期せず 失敗した場合には error が送出される可能性もあります。
以下のシンボルは、後に述べる関数 setrlimit() および getrlimit() を使って消費量を制御することができるリソース を定義しています。これらのシンボルの値は、C プログラムで使われて いるシンボルと全く同じです。
getrlimit(2) の Unix マニュアルページには、指定可能な リソースが列挙されています。全てのシステムで同じシンボルが使われて いるわけではなく、また同じリソースを表すために同じ値が使われて いるとも限らないので注意してください。このモジュールはプラットフォーム 間の相違を隠蔽しようとはしていません -- あるプラットフォームで 定義されていないシンボルは、そのプラットフォーム向けの本モジュール では利用することができません。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。