为什么 Unix 用户不能向下调整优先级?

为什么 Unix 用户不能向下调整优先级?

我知道非 root 用户可以重新调整进程向上,但不重新调整进程优先级向下

$ nice yes >/dev/null & p=$!
$ renice 15 -p $p 
8414: old priority 10, new priority 15
$ renice 12 -p $p
renice: 8414: setpriority: Permission denied
$ kill $p

我理解,作为非 root 用户,我不应该具有将某个进程重新优化到负面 nice 区域的能力,或者 root 可能已经代表我以更高的 nice 级别启动了一个进程。

问题是出于什么逻辑原因,非 root 用户可以不是重新调整自己向下处理,即使不再降低到最初启动时的优先级?

答案1

如果根用户能够重新调整另一个用户的进程的优先级,因为它使用了太多资源,那么用户不应该能够规避这一点并将其改回。

答案2

renice修改程序的优劣 - 数字越大,优先级越低。

我猜原因是可能没有记住起始优先级 - 只有当前优先级值。因此没有好的方法来确定用户是否可以将程序重新设置为更高的优先级。(这只是猜测......也许有人可以验证一下?)

答案3

因为这样程序就会有动力以牺牲整个系统为代价来优先考虑自己。

相关内容