我在用prlimit
在 Ubuntu 中对我的沙箱进行一些资源限制,这非常有帮助。但是,我不太确定该怎么办RLIMIT_NICE
。文档说:
RLIMIT_NICE(自 Linux 2.6.12 起,但请参阅下面的 BUGS) 指定使用 setpriority(2) 或 Nice(2) 可以将进程的 Nice 值提高到的上限。
然而,根据获取优先级(2),只有首先由超级用户拥有的进程才能提高其良好价值。但如果是这种情况,该RLIMIT_NICE
值不会添加太多功能,因为特权用户RLIMIT
无论如何都可以任意降低或更高的值。
所以我不明白如何使用或解释RLIMIT_NICE
.对于非特权用户来说,整个事情似乎毫无用处,因为他们首先无法提高优先级,并且将其设置为低于当前优先级是没有意义的。然而,对于超级用户来说,它也没有真正添加任何东西,因为可以任意提高软限制和硬限制nice
。RLIMIT_NICE
那么背后的想法是什么RLIMIT_NICE
?
答案1
事实上,RLIMIT_NICE
它允许您绕过“只有由 root 拥有的进程才能提高其好值”这一基本规则。
示范:
# ulimit -e 30
# su nobody
$ nice -n -10 top
您将看到您的top
进程运行良好-10
。
现在,如果您尝试nice -n -11 top
,它会很好地运行0
,-11
因为RLIMIT_NICE=30
.
联机帮助页中给出了公式:允许的最大友好度为20-rlimit
。所以:
0
意思是“你可以将好感度提高到20”,又名无用;20
意思是“你可以将niceness提高到0”,如果你降低了优先级,它可以让你回到0;40
意思是“您最多可以启动进程nice -n -20
。