Provided by: manpages-ru_4.19.0-7_all
ИМЯ
acct - файл учёта процессов
СИНТАКСИС
#include <sys/acct.h>
ОПИСАНИЕ
Если ядро собрано с включённым параметром учёта процессов (CONFIG_BSD_PROCESS_ACCT), то системный вызов acct(2) запустит учёт процесса: acct("/var/log/pacct"); При включённом учёте процессов, ядро делает запись в файл учёта по каждому процессу системы по его завершении. Эта запись содержит информацию о завершённом процессе и определена в <sys/acct.h> следующим образом: #define ACCT_COMM 16 typedef u_int16_t comp_t; struct acct { char ac_flag; /* флаги учёта */ u_int16_t ac_uid; /* ID пользователя */ u_int16_t ac_gid; /* ID группы */ u_int16_t ac_tty; /* управляющий терминал */ u_int32_t ac_btime; /* время создания процесса (в секундах с начала эпохи) */ comp_t ac_utime; /* время работы ЦП в пользовательском режиме */ comp_t ac_stime; /* время работы ЦП в системном режиме */ comp_t ac_etime; /* прошедшее время */ comp_t ac_mem; /* среднее количество использованной памяти (КБ) */ comp_t ac_io; /* передано символов (не используется) */ comp_t ac_rw; /* прочитано или записано блоков (не используется) */ comp_t ac_minflt; /* промахи для вспомогательных страниц */ comp_t ac_majflt; /* промахи для главных страниц */ comp_t ac_swaps; /* количество подкачек (не используется) */ u_int32_t ac_exitcode; /* код завершения процесса (см. wait(2)) */ char ac_comm[ACCT_COMM+1]; /* имя команды (basename от последней исполнявшейся команды; завершается null) */ char ac_pad[X]; /* байты заполнения */ }; enum { /* биты для поля ac_flag */ AFORK = 0x01, /* был выполнен fork, но не exec */ ASU = 0x02, /* использовались права суперпользователя */ ACORE = 0x08, /* создан файл core */ AXSIG = 0x10 /* завершён по сигналу */ }; Тип данных comp_t — это число с плавающей точкой, состоящее из 3-битной экспоненты по основанию 8 и 13-битной мантиссы. Переменная c этого типа может быть преобразована к целому (long) так: v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3); Поля ac_utime, ac_stime и ac_etime хранят время в "тактах часов"; для преобразования в секунды нужно поделить значение на sysconf(_SC_CLK_TCK). Формат файла учёта версии 3 Since Linux 2.6.8, an optional alternative version of the accounting file can be produced if the CONFIG_BSD_PROCESS_ACCT_V3 option is set when building the kernel. With this option is set, the records written to the accounting file contain additional fields, and the width of c_uid and ac_gid fields is widened from 16 to 32 bits (in line with the increased size of UID and GIDs in Linux 2.4 and later). The records are defined as follows: struct acct_v3 { char ac_flag; /* флаги */ char ac_version; /* всегда равно ACCT_VERSION (3) */ u_int16_t ac_tty; /* управляющий терминал */ u_int32_t ac_exitcode; /* код завершения процесса u_int32_t ac_uid; /* реальный ID пользователя */ u_int32_t ac_gid; /* реальный ID группы */ u_int32_t ac_pid; /* ID процесса */ u_int32_t ac_ppid; /* ID родительского процесса */ u_int32_t ac_btime; /* время создания процесса float ac_etime; /* прошедшее время */ comp_t ac_utime; /* время работы ЦП в пользовательском режиме */ comp_t ac_stime; /* время работы ЦП в системном режиме */ comp_t ac_mem; /* среднее количество использованной памяти (КБ) */ comp_t ac_io; /* передано символов (не используется) */ comp_t ac_rw; /* прочитано или записано блоков (не используется) */ comp_t ac_minflt; /* промахи для вспомогательных страниц */ comp_t ac_majflt; /* промахи для главных страниц */ comp_t ac_swaps; /* количество подкачек (не используется) */ char ac_comm[ACCT_COMM]; /* имя команды */ };
ВЕРСИИ
The acct_v3 structure is defined since glibc 2.6.
СТАНДАРТЫ
Учёт процессов возник в BSD. Хотя он есть в большинстве систем, он не стандартизован, и параметры разнятся между системами.
ЗАМЕЧАНИЯ
Записи в файле учёта упорядочены по времени завершения процессов. Up to and including Linux 2.6.9, a separate accounting record is written for each thread created using the NPTL threading library; since Linux 2.6.10, a single accounting record is written for the entire process on termination of the last thread in the process. В файле /proc/sys/kernel/acct, описанном в proc(5), определены настройки, которые управляют поведением учёта процессов при нехватке места на диске.
СМ. ТАКЖЕ
lastcomm(1), acct(2), accton(8), sa(8)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Dmitry Bolkhovskikh <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.