系统的每个资源控制都有一组特定的关联属性。这组属性定义为一组标志,这些标志与此资源的所有受控实例关联。不能修改全局标志,但是可以使用 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 seconds ] |
全局标志表示以下内容。
不需要超级用户权限来减小此控制的权限值。
即使当超过阈值时,也从不拒绝对资源的访问。
SIGXCPU 可用于在到达此资源的阈值时发送。
资源控制的时间值。
不能设置权限类型为 basic 的资源控制值。只允许有特权的资源控制值。
不能对资源控制值设置本地信号操作。
不能为此资源控制设置全局 syslog 消息操作。
超出阈值时总是拒绝资源请求。
资源控制的计数(整数)值。
资源控制大小的单位。
使用 prctl 命令可以显示资源控制的本地值和操作。
$ prctl -n process.max-cpu-time $$ process 353939: -ksh NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT process.max-cpu-time privileged 18.4Es inf signal=XCPU - system 18.4Es inf none |
为两个阈值都设置了 max (RCTL_LOCAL_MAXIMAL) 标志,并且为此资源控制定义了 inf (RCTL_GLOBAL_INFINITE) 标志。inf 值可以是无穷大,但从不会达到。因此,如同配置的那样,两个阈值都表示从不会超过的无穷大值。