Справочник по консольным командам Toybox для Android 12


  Ver.0.8.4     Ver.0.8.9     Pending  

Путь: 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");
    }