사용자 네임스페이스의 실시간 우선순위

사용자 네임스페이스의 실시간 우선순위

사용자 네임스페이스에서 실시간 우선순위로 스레드를 시작하는 작은 프로그램이 있습니다. 하지만 실행하려고 할 때마다 "권한이 거부되었습니다"라는 오류가 발생합니다. 프로그램:

#include <stdio.h>
#include <unistd.h>
#include <sched.h>
#include <pthread.h>
#include <errno.h>

int main(int argc, char *argv[])
{
   printf("Setting rt prio\n");

   struct sched_param param;
   param.sched_priority=20;
   int retval = sched_setscheduler(0, SCHED_RR, &param);
   printf("Retval: %d, Errno: %d\n", retval, errno);

   return 0;
}

프로그램을 루트로 실행하면 예상되는 출력이 생성됩니다.

 Setting rt prio
 Retval: 0, Errno: 0

일반 사용자로 실행하면 필요한 기능이 있습니다.

 sudo setcap CAP_SYS_NICE+eip realtime

하지만 unshare -U를 사용하여 사용자 네임스페이스로 전환하면 항상 권한 거부 오류가 발생합니다. 상위 네임스페이스에 적절한 기능을 설정했는데도 마찬가지입니다. 사용자 네임스페이스에서 실시간 우선순위로 스레드를 실행할 수 있는 방법이 있습니까?

관련 정보