proc_pid_stat(5)

НАИМЕНОВАНИЕ
/proc/pid/stat - status information

ОПИСАНИЕ

/proc/pid/stat
    Информация о состоянии процесса. Она используется командой ps(1). Определяется в файле исходного кода ядра fs/proc/array.c.

    Поля в соответствующем порядке с их надлежащими описателями формата scanf(3) перечислены ниже. Корректность информации в этих полях управляется проверкой режима доступа ptrace PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT (описана в ptrace(2)). Если проверкой доступ запрещён, то значение поля показывается как 0. Затронутые поля отмечены [PT].

    (1) pid  %d
        Идентификатор процесса.

    (2) comm  %s
        The filename of the executable, in parentheses. Strings longer than TASK_COMM_LEN (16) characters (including the terminating null byte) are silently truncated. This is visible whether or not the executable is swapped out.

    (3) state  %c
        Один из следующих символов, описывающих состояние процесса:

        R   Выполняется

        S   Спит, ожидая прерывания

        D   Ожидает в сне, непрерываемом диском

        З   Зомби

        Т   Остановлен (по сигналу) или остановлен из-за трассировки (до Linux 2.6.33)

        t   Остановлен из-за трассировки (после Linux 2.6.33)

        W   Происходит замещение страниц (только до Linux 2.6.0)

        X   Мёртв (с Linux 2.6.0)

        x   Мёртв (только в Linux 2.6.33 по 3.13)

        K   Пробудился, чтобы умереть (только в Linux 2.6.33 по 3.13)

        W   Пробуждается (только в Linux 2.6.33 по 3.13)

        П   Припаркован (только в Linux 3.9 по 3.13)

        I   Idle (Linux 4.14 onward)

    (4) ppid  %d
        Идентификатор (PID) родителя данного процесса.

    (5) pgrp  %d
        Идентификатор группы процесса.

    (6) session  %d
        Идентификатор сеанса процесса.

    (7) tty_nr  %d
        Управляющий терминал процесса (младший номер устройства определяется сочетанием бит: c 31 по 20 и с 7 по 0; старший номер устройства расположен в битах с 15 по 8).

    (8) tpgid  %d
        Идентификатор группы процесса, которая в настоящий момент владеет управляющим терминалом, к которому подключён данный процесс.

    (9) flags  %u
        Слово флагов процесса в ядре. Назначение бит определено макросами PF_* в файле include/linux/sched.h исходного ядра Linux. Смысл бит зависит от версии ядра.

        Формат данного поля был %lu до Linux 2.6.

    (10) minflt  %lu
        Количество незначительных промахов процесса, которые не потребовали загрузки страницы памяти с диска.

    (11) cminflt  %lu
        Количество незначительных промахов процесса, которые возникли при ожидании окончания работы процессов-потомков.

    (12) majflt  %lu
        Количество значительных промахов процесса, которые потребовали загрузки страницы памяти с диска.

    (13) cmajflt  %lu
        Количество значительных промахов процесса, которые возникли при ожидании окончания работы процессов-потомков.

    (14) utime  %lu
        Количество времени, которое было запланировано для работы процесса в пользовательском режиме, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK)). Сюда включено гостевое время, guest_time (время, потраченное на работу виртуального ЦП, см. далее), так что приложения, которые не учитывают гостевое поле, не потеряют его при вычислениях.

    (15) stime  %lu
        Количество времени, которое было запланировано для работы процесса в режиме ядра, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK)).

    (16) cutime  %ld
        Количество времени, которое было запланировано для работы процесса в пользовательском режиме для ожидания окончания работы процессов-потомков, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK) (см). также times(2)). Сюда включено гостевое время, cguest_time (время, потраченное на работу виртуального ЦП, см. далее).

    (17) cstime  %ld
        Количество времени, которое было запланировано для работы процесса в режиме ядра для ожидания окончания работы процессов-потомков, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK)).

    (18) priority  %ld
        (Объяснение относится к Linux 2.6) Для процессов, работающих согласно политике планирования в реальном времени (policy далее; см. sched_setscheduler(2)), это значение задаёт приоритет при планировании за вычетом 1; то есть число в диапазоне от -2 до -100 соответствует приоритетам реального времени от 1 до 99. Для процессов, работающих без политики планирования в реальном времени, это не изменённое значение любезности (setpriority(2)) в том же виде в каком оно представлено в ядре. Ядро хранит значения любезности в виде чисел в диапазоне от 0 (высокое) до 39 (низкое), что соответствует диапазону пользователя от -20 до 19.

        До Linux 2.6 это была пересчитанная величина на основе весов планировщика для определённого процесса.

    (19) nice  %ld
        Значение любезности (смотрите setpriority(2)) задаётся числом в диапазоне от 19(низкий приоритет) до -20 (высокий приоритет).

    (20) num_threads  %ld
        Number of threads in this process (since Linux 2.6). Before Linux 2.6, this field was hard coded to 0 as a placeholder for an earlier removed field.

    (21) itrealvalue  %ld
        The time in jiffies before the next SIGALRM is sent to the process due to an interval timer. Since Linux 2.6.17, this field is no longer maintained, and is hard coded as 0.

    (22) starttime  %llu
        The time the process started after system boot. Before Linux 2.6, this value was expressed in jiffies. Since Linux 2.6, the value is expressed in clock ticks (divide by sysconf(_SC_CLK_TCK)).

        Формат данного поля был %lu до Linux 2.6.

    (23) vsize  %lu
        Размер виртуальной памяти в байтах.

    (24) rss  %ld
        Resident Set Size: number of pages the process has in real memory. This is just the pages which count toward text, data, or stack space. This does not include pages which have not been demand-loaded in, or which are swapped out. This value is inaccurate; see /proc/pid/statm below.

    (25) rsslim  %lu
        Текущее мягкое ограничение rss процесса в байтах; смотрите описание RLIMIT_RSS в getrlimit(2).

    (26) startcode  %lu  [PT]
        Адрес начала сегмента исполняемого кода программы.

    (27) endcode  %lu  [PT]
        Адрес конца сегмента исполняемого кода программы.

    (28) startstack  %lu  [PT]
        Адрес начала (то есть низ) стека.

    (29) kstkesp  %lu  [PT]
        Текущее значение ESP (указателя стека) процесса, хранящееся в странице стека ядра.

    (30) kstkeip  %lu  [PT]
        Текущее значение EIP (указатель инструкций).

    (31) signal  %lu
        Карта ожидающих сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/pid/status.

    (32) blocked  %lu
        Карта блокированных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/pid/status.

    (33) sigignore  %lu
        Карта игнорированных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/pid/status.

    (34) sigcatch  %lu
        Карта перехваченных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте /proc/pid/status.

    (35) wchan  %lu  [PT]
        Это «канал», в котором ожидает процесс. Он является адресом расположения в ядре, где спит процесс. Соответствующее символическое имя можно найти в /proc/pid/wchan.

    (36) nswap  %lu
        () Количество страниц в подкачке (не сопровождается).

    (37) cnswap  %lu
        () Суммарное значение nswap для процессов-потомков (не сопровождается).

    (38) exit_signal  %d  (since Linux 2.1.22)
        Сигнал, который будет послан родителю, когда процесс завершит работу.

    (39) processor  %d  (начиная с Linux 2.2.8)
        Номер процессора, на котором последний раз выполнялся процесс.

    (40) rt_priority  %u  (начиная с Linux 2.5.19)
        Приоритет выполнения в реальном времени, число из диапазона от 1 до 99 для процессов запланированных выполняться согласно политике реального времени или 0 для процессов, выполняющихся не в реальном времени (см. sched_setscheduler(2)).

    (41) policy  %u  (начиная с Linux 2.5.19)
        Политика планирования (смотрите sched_setscheduler(2)). Декодируется с помощью констант SCHED_* из linux/sched.h.

        Формат данного поля был %lu до Linux 2.6.22.

    (42) delayacct_blkio_ticks  %llu  (начиная с Linux 2.6.18)
        Суммарная задержка блочного ввода-вывода, измеряется в тиках (сотых долях секунды).

    (43) guest_time  %lu  (начиная с Linux 2.6.24)
        Гостевое время процесса (время, потраченное на работу виртуального ЦП гостевой операционной системы), измеряется в тиках (поделённых на sysconf(_SC_CLK_TCK)).

    (44) cguest_time  %ld  (начиная с Linux 2.6.24)
        Гостевое время потомка процесса, измеряется в тиках (поделённых на sysconf(_SC_CLK_TCK)).

    (45) start_data  %lu  (начиная с Linux 3.3)  [PT]
        Адрес, выше которого располагаются инициализированные и не инициализированные (BSS) данные.

    (46) end_data  %lu  (начиная с Linux 3.3)  [PT]
        Адрес, ниже которого располагаются инициализированные и не инициализированные (BSS) данные.

    (47) start_brk  %lu  (начиная с Linux 3.3)  [PT]
        Адрес, выше которого программа может расширять кучу с помощью brk(2).

    (48) arg_start  %lu  (начиная с Linux 3.5)  [PT]
        Адрес, выше которого располагаются аргументы командной строки программы (argv).

    (49) arg_end  %lu  (начиная с Linux 3.5)  [PT]
        Адрес, ниже которого располагаются аргументы командной строки программы (argv).

    (50) env_start  %lu  (начиная с Linux 3.5)  [PT]
        Адрес, выше которого располагается окружение программы.

    (51) env_end  %lu  (начиная с Linux 3.5)  [PT]
        Адрес, ниже которого располагается окружение программы.

    (52) exit_code  %d  (начиная с Linux 3.5)  [PT]
        Состояние завершения нити в виде, выдаваемом waitpid(2).

СМОТРИТЕ ТАКЖЕ
proc(5), proc_pid_status(5)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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