Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       getpriority, setpriority - получить/установить приоритет планирования программы

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <sys/resource.h>

       int getpriority(int which, id_t who);
       int setpriority(int which, id_t who, int prio);

ОПИСАНИЕ

       С  помощью  вызова  getpriority()  можно  получить приоритет планирования (scheduling priority) процесса,
       группы процессов или пользователя,  которые  заданы  в  аргументах  which  и  who,  а  с  помощью  вызова
       setpriority()  назначить  его.  Атрибут  процесса  этих  системных  вызовов тот же самый что атрибут (так
       называемое значение уступчивости «nice»), с которым работает вызов nice(2).

       Значением which может быть одно из: PRIO_PROCESS, PRIO_PGRP или PRIO_USER, а значение who рассматривается
       относительно  which  (идентификатор  процесса,  если  PRIO_PROCESS;  группы  процесса,  если   PRIO_PGRP;
       идентификатор  пользователя,  если  PRIO_USER). Нулевое значение who означает (соответственно) вызывающий
       процесс, группу вызывающего процесса или реальный идентификатор пользователя вызывающего процесса.

       Аргумент prio — это значение в диапазоне от -20 до 19 (смотрите ЗАМЕЧАНИЯ ниже), где  -20  это  наивысший
       приоритет,  а  19  —  наинизший.  Попытка  задать  приоритет  вне  этого диапазона просто подгоняется под
       диапазон.  По  умолчанию  приоритет  равен  0;  низкие  значения  дают  процессу  больший  приоритет  при
       планировании.

       Вызов  getpriority()  возвращает  наивысший  приоритет (наименьшее числовое значение) из приоритетов всех
       указанных процессов. Вызов setpriority() устанавливает приоритеты всех  указанных  процессов  в  заданное
       значение.

       Обычно,   только  привилегированный  процесс  может  понижать  значение  уступчивости  (т.  е.,  повышать
       приоритет).  Однако  начиная  с  Linux  2.6.12  непривилегированный  процесс  может   понизить   значение
       уступчивости  процесса  назначения,  у  которого  установлено  подходящее мягкое ограничение RLIMIT_NICE;
       подробности смотрите в getrlimit(2).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On success, getpriority()  returns the calling thread's nice value, which may be a negative  number.   On
       error, it returns -1 and sets errno to indicate the error.

       Since  a successful call to getpriority()  can legitimately return the value -1, it is necessary to clear
       errno prior to the call, then check errno afterward to determine if -1 is an error or a legitimate value.

       setpriority()  returns 0 on success.  On failure, it returns -1 and sets errno to indicate the error.

ОШИБКИ

       EACCES Вызывающий пытается понизить значение уступчивости (то есть повысить приоритет процесса), но он не
              имеет на это прав (в Linux: не имеет мандата CAP_SYS_NICE).

       EINVAL Значение which не равно PRIO_PROCESS, PRIO_PGRP или PRIO_USER.

       EPERM  Процесс был найден, но эффективному идентификатору пользователя этого  процесса  не  соответствует
              заданный  в  вызове эффективный (или реальный) идентификатор вызывающего и  у вызывающего нет прав
              (в Linux: не имеет мандата CAP_SYS_NICE). Смотрите ЗАМЕЧАНИЯ далее.

       ESRCH  Не найдено процессов, которые заданы значениями which и who.

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       POSIX.1-2001, SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD).

ПРИМЕЧАНИЯ

       Дополнительную информацию о значении уступчивости смотрите в sched(7).

       Замечание: дополнительное свойство «autogroup» из Linux 2.6.38 означает,  что  значение  уступчивости  во
       многих случаях больше не работает как обычно. Подробней смотрите в sched(7).

       Потомок,  созданный  с  помощью fork(2), наследует значение nice родителя. При вызове execve(2)  значение
       nice сохраняется.

       The details on the condition for EPERM depend on the system.  The above description is what  POSIX.1-2001
       says,  and seems to be followed on all System V-like systems.  Linux kernels before Linux 2.6.12 required
       the real or effective user ID of the caller to match the real user of the process  who  (instead  of  its
       effective user ID).  Linux 2.6.12 and later require the effective user ID of the caller to match the real
       or  effective user ID of the process who.  All BSD-like systems (SunOS 4.1.3, Ultrix 4.2, 4.3BSD, FreeBSD
       4.3, OpenBSD-2.5, ...) behave in the same manner as Linux 2.6.12 and later.

   Отличия между библиотекой C и ядром
       The getpriority system call returns nice values translated to the range 40..1, since  a  negative  return
       value  would  be  interpreted  as an error.  The glibc wrapper function for getpriority()  translates the
       value back according to the formula unice = 20 - knice (thus, the 40..1  range  returned  by  the  kernel
       corresponds to the range -20..19 as seen by user space).

ОШИБКИ

       Согласно  POSIX,  значение  nice  — свойство процесса. Однако в текущей реализации Linux/NPTL нитей POSIX
       значение nice — атрибут нити:  различные  нити  в  одном  процессе  могут  иметь  разные  значения  nice.
       Переносимые приложения не должны полагаться на поведение Linux, которое может стать стандартом в будущем.

СМОТРИТЕ ТАКЖЕ

       nice(1), renice(1), fork(2), capabilities(7), sched(7)

       Файл  Documentation/scheduler/sched-nice-design.txt  из дерева исходного кода ядра Linux (начиная с Linux
       2.6.23)

ПЕРЕВОД

       Русский перевод этой страницы  руководства  разработал(и)  Azamat  Hackimov  <azamat.hackimov@gmail.com>,
       Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,   Vladislav   <ivladislavefimov@gmail.com>,   Yuri  Kozlov
       <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                   getpriority(2)