rctl
可用于提供更细粒度的方法来控制资源限制。此命令支持的不仅仅是用户限制,因为它还可用于设置进程和 jail 的资源约束。default
是默认的登录类别。每个登录类都有一组与之相关的登录能力。一个登录能力是一个 name=value
对,其中 name
是一个众所周知的标识符,value
是一个任意的字符串,会根据名称进行相应的处理。filesize
或磁盘配额。此限制通常用作控制磁盘空间消耗的不太严格的方法。由于用户不生成核心文件,并且通常不会删除它们,因此在大型程序崩溃时,此设置可能会使它们免于磁盘空间不足。top
和 ps
生成的某些字段中显示的 CPU 百分比。kern.maxproc
指定的系统限制。将此限制设置得太小可能会妨碍用户的工作效率,因为某些任务(如编译大型程序)会启动许多进程。kern.maxfiles
定义。daemon
登录类。openfiles
为 50
意味着用户运行的每个进程最多可以打开 50
个文件。一个用户可以打开的文件总量是 openfiles
的值乘以 maxproc
的值。这也适用于内存消耗。kern.racct.enable
必须设置为非零值。自定义内核需要特定配置:rctl
可用于为系统设置规则。user
,主体 ID 是 trhodes
,资源 maxproc
是最大进程数,动作是 deny
,它阻止任何新进程的创建。这意味着,用户 trhodes
将被限制在不超过10个进程的范围内。其他可能的动作包括向控制台记录,向 devd(8) 传递通知,或者向进程发送一个 sigterm。screen
会话后执行其他任务。一旦达到资源限制,将打印出一个错误,如本例。rctl
将其从列表中删除: