LINUX.ORG.RU

RLIMIT_NICE


0

1
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
int main() {
  struct rlimit r;
  r.rlim_cur = 20;
  r.rlim_max = 20;
  setrlimit(RLIMIT_NICE, &r);
  sleep(60);
  return 0;
}

Не выставляется параметр NICE у процесса (ps -fleH /NI). Почему?

★★★★★

> Не выставляется параметр NICE у процесса (ps -fleH /NI). Почему?

-  setrlimit(RLIMIT_NICE, &r);
+  if (setrlimit(RLIMIT_NICE, &r) < 0) {
+    perror("setrlimit(RLIMIT_NICE, ...)");
+    exit(EXIT_FAILURE);
+  }
arsi ★★★★★
()
Ответ на: комментарий от arsi
$ ./a.out 
setrlimit(RLIMIT_NICE, ...): Operation not permitted

Странно ... в man setrlimit ограничений на использование не увидел. Я правильно понял, что в Дебиане это настраивается в /etc/security/limits.conf ?

Кстати, nice() вместо setrlimit(RLIMIT_NICE,...) работает без проблем.

pacify ★★★★★
() автор топика
Ответ на: комментарий от visual

от рута запускаешь?

От рута запускается без ошибок.

pacify ★★★★★
() автор топика
Ответ на: комментарий от ttnl

Может быть просто я лучше погрепал man?

А, да. Я поленился почитать man.

       The  soft  limit is the value that the kernel enforces for the corresponding resource.  The hard
       limit acts as a ceiling for the soft limit: an unprivileged process may only set its soft  limit
       to a value in the range from 0 up to the hard limit, and (irreversibly) lower its hard limit.  A
       privileged process (under Linux: one with the CAP_SYS_RESOURCE capability)  may  make  arbitrary
       changes to either limit value.
pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.