システム上の資源制御には、それぞれ特定のプロパティセットが対応付けられています。このプロパティセットは、一連のグローバルフラグとして定義されます。グローバルフラグは、その資源が制御されているすべてのインスタンスに対応付けられます。グローバルフラグは変更できませんが、rctladm または getrctl システムコールを使って取得できます。
ローカルフラグは、特定のプロセスまたはプロセス集合に対する資源制御の特定のしきい値について、デフォルトの動作と構成を定義します。あるしきい値のローカルフラグが、同じ資源制御で定義されている別のしきい値の動作に影響することはありません。ただし、グローバルフラグは、特定の制御に対応付けられているすべての値の動作に影響します。ローカルフラグは、対応するグローバルフラグによる制約の範囲内で、prctl コマンドまたは setrctl システムコールを使って変更できます (setrctl(2) 参照)。
ローカルフラグ、グローバルフラグ、およびそれらの定義の詳細なリストについては、rctlblk_set_value(3C) を参照してください。
特定の資源制御がしきい値に達したときのシステムの動作を確認するには、rctladm を使ってその資源制御のグローバルフラグを表示します。たとえば、process.max-cpu-time の値を表示するには、次のように入力します。
$ rctladm process.max-cpu-time process.max-cpu-time syslog=off [ lowerable no-deny cpu-time inf ] |
広域フラグは、次のことを示します。
この制御の特権値を下げるのに、スーパーユーザー特権を必要としない
しきい値を超えても、資源へのアクセスは拒否されない
資源がしきい値に達したとき、SIGXCPU を送信できる
RCTL_LOCAL_MAXIMAL が設定されている値は、実際には無限数を意味し、制約はない
資源制御のローカル値とアクションを表示するには、prctl を使用します。
$ prctl -n process.max-cpu-time $$ 353939: -ksh process.max-cpu-time [ lowerable no-deny cpu-time inf ] 18446744073709551615 privileged signal=XCPU [ max ] 18446744073709551615 system deny [ max ] |
この例では、2 つのしきい値の両方に max (RCTL_LOCAL_MAXIMAL) フラグが設定されており、資源制御には inf (RCTL_GLOBAL_INFINITE) フラグが設定されています。したがって、設定されているように、両方のしきい値は無限値を意味し、これらの値を上回ることはありません。