| Путь: Toys/Other, команды версии: Ver.4 Ver.9 Комментарии в файле ionice.c : Команд: 2 ionice
usage: ionice [-t] [-c CLASS] [-n LEVEL] [COMMAND...|-p PID]
Изменить приоритет планирования ввода-вывода процесса. Без аргументов
(или просто -p), отображать существующий класс/приоритет ввода/вывода процесса.
-c CLASS = 1-3: 1 (в реальном времени), 2 (наилучшие усилия, по умолчанию), 3 (при простое)
-n LEVEL = 0-7: (0 — наивысший приоритет, по умолчанию = 5)
-p Влияет на существующий PID вместо создания нового потомка
-t Игнорировать сбой установки приоритета ввода/вывода
Системный приоритет по умолчанию обычно равен -c 2 -n 4.
usage: ionice [-t] [-c CLASS] [-n LEVEL] [COMMAND...|-p PID]
Change the I/O scheduling priority of a process. With no arguments
(or just -p), display process' existing I/O class/priority.
-c CLASS = 1-3: 1(realtime), 2(best-effort, default), 3(when-idle)
-n LEVEL = 0-7: (0 is highest priority, default = 5)
-p Affect existing PID instead of spawning new child
-t Ignore failure to set I/O priority
System default iopriority is generally -c 2 -n 4. iorenice
usage: iorenice PID [CLASS] [PRIORITY]
Отображение или изменение приоритета ввода/вывода существующего процесса. КЛАСС может быть
«rt» для реального времени, «be» для максимального усилия, «idle» для только в режиме ожидания или
"none", чтобы оставить его в покое. ПРИОРИТЕТ может принимать значения от 0 до 7 (самое высокое значение – 0, по умолчанию – 4).
usage: iorenice PID [CLASS] [PRIORITY]
Display or change I/O priority of existing process. CLASS can be
"rt" for realtime, "be" for best effort, "idle" for only when idle, or
"none" to leave it alone. PRIORITY can be 0-7 (0 is highest, default 4).
Исходный текст в файле ionice.c #define FOR_ionice
#include "toys.h"
GLOBALS(
long p, n, c;
)
static int ioprio_get(void)
{
return syscall(__NR_ioprio_get, 1, (int)TT.p);
}
static int ioprio_set(void)
{
int prio = ((int)TT.c << 13) | (int)TT.n;
return syscall(__NR_ioprio_set, 1, (int)TT.p, prio);
}
void ionice_main(void)
{
if (!TT.p && !toys.optc) error_exit("Need -p or COMMAND");
if (toys.optflags == FLAG_p) {
int p = ioprio_get();
xprintf("%s: prio %d\n",
(char *[]){"unknown", "Realtime", "Best-effort", "Idle"}[(p>>13)&3],
p&7);
} else {
if (-1 == ioprio_set() && !FLAG(t)) perror_exit("set");
if (!TT.p) xexec(toys.optargs);
}
}
void iorenice_main(void)
{
char *classes[] = {"none", "rt", "be", "idle"};
TT.p = atolx(*toys.optargs);
if (toys.optc == 1) {
int p = ioprio_get();
if (p == -1) perror_exit("read priority");
TT.c = (p>>13)&3;
p &= 7;
xprintf("Pid %ld, class %s (%ld), prio %d\n", TT.p, classes[TT.c], TT.c, p);
return;
}
for (TT.c = 0; TT.c<4; TT.c++)
if (!strcmp(toys.optargs[toys.optc-1], classes[TT.c])) break;
if (toys.optc == 3 || TT.c == 4) TT.n = atolx(toys.optargs[1]);
else TT.n = 4;
TT.c &= 3;
if (-1 == ioprio_set()) perror_exit("set");
}
|
|