为什么sched_setscheduler()
需要root权限吗?
我正在编写一些受益于设置 SCHED_FIFO 的代码。但如果我使用 sched_setscheduler() 我现在必须要求此进程以 root 身份运行。为什么不允许sched_setscheduler()
无需root权限即可运行?
大概是因为使用实时调度程序的进程可以完全接管一台机器,而不会将 CPU 交给其他进程——普通用户不应该有权力这样做。
Linux 允许您进行比以 root 身份运行更细粒度的控制,您可以设置 CAP_SYS_NICE能力使用以下命令在您的可执行文件上(以 root 用户身份执行一次):
setcap cap_sys_nice+ep ./your_program
这将允许您的可执行文件使用 sched_setscheduler,即使它不是以 root 用户身份运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)