小编jar*_*729的帖子

安装 libpam-systemd 后出现 sched_setscheduler 错误 (EPERM)

只是尝试使用SCHED_FIFO策略将计划优先级设置为最大。在我安装 libpam-systemd 后,这段代码开始抛出错误。

编辑:归结为以下两个问题,尽可能清楚地表达它们。

STRACE:

sched_setscheduler(564, SCHED_FIFO, { 99 }) = -1 EPERM(不允许操作)

param.sched_priority = sched_get_priority_max(SCHED_FIFO);
printf("priority %d \n", param.sched_priority);

ret1 = sched_setscheduler(getpid(), SCHED_FIFO, &param);
printf("sched_setscheduler ret %d \n", ret1);
if(ret1 == -1){
    perror("sched_setscheduler");
    goto fail;
}
Run Code Online (Sandbox Code Playgroud)

问题:为什么 root 用户应该获得 EPERM?

还尝试在下面设置但/etc/security/limits.conf没有任何运气。

root   soft   rtprio       99    
root   hard   rtprio       99
Run Code Online (Sandbox Code Playgroud)

来自 KENREL 配置文件

#CONFIG_SCHED_AUTOGROUP is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
Run Code Online (Sandbox Code Playgroud)

更新 文件中内核代码错误linux/kernel/sched/core.c

#ifdef CONFIG_RT_GROUP_SCHED
    /*
     * Do not …
Run Code Online (Sandbox Code Playgroud)

linux pam ubuntu-15.04

3
推荐指数
1
解决办法
3555
查看次数

标签 统计

linux ×1

pam ×1

ubuntu-15.04 ×1