Scroll to navigation

acct(5) File Formats Manual acct(5)

NUME

acct - fișierul de contabilizare a proceselor

REZUMAT

#include <sys/acct.h>

DESCRIERE

Dacă nucleul este construit cu opțiunea de contabilizare a proceselor activată (CONFIG_BSD_PROCESS_ACCT), atunci apelarea acct(2) pornește contabilizarea proceselor, de exemplu:


acct("/var/log/pacct");

Atunci când contabilizarea proceselor este activată, nucleul scrie o înregistrare în fișierul de contabilitate atunci când fiecare proces din sistem se termină. Această înregistrare conține informații despre procesul terminat și este definită în <sys/acct.h> după cum urmează:


#define ACCT_COMM 16
typedef u_int16_t comp_t;
struct acct {

char ac_flag; /* Fanioane contabilizare */
u_int16_t ac_uid; /* Id-ul utilizatorului de contabilizare */
u_int16_t ac_gid; /* Id-ul grupului de contabilizare */
u_int16_t ac_tty; /* Terminalul de control */
u_int32_t ac_btime; /* Ora de creare a procesului
(secunde de la Epocă)*/
comp_t ac_utime; /* Timpul CPU al utilizatorului */
comp_t ac_stime; /* Timpul CPU al sistemului */
comp_t ac_etime; /* Timpul scurs */
comp_t ac_mem; /* Media de utilizare a memoriei (ko) */
comp_t ac_io; /* Caracterele transferate (neutilizate) */
comp_t ac_rw; /* Blocurile citite sau scrise (neutilizate)*/
comp_t ac_minflt; /* Defecțiuni minore de pagină */
comp_t ac_majflt; /* Defecțiuni majore de pagină */
comp_t ac_swaps; /* Numărul de swap-uri (neutilizate) */
u_int32_t ac_exitcode; /* Starea de terminare a procesului
(a se vedea wait(2)) */
char ac_comm[ACCT_COMM+1];
/* Numele comenzii (numele de bază al ultimei
comenzi executate; terminată cu null) */
char ac_pad[X]; /* octeți de umplutură */ }; enum { /* Biții care pot fi stabiliți în câmpul ac_flag */
AFORK = 0x01, /* A executat «fork», dar nu «exec» */
ASU = 0x02, /* Privilegii de superutilizator utilizate */
ACORE = 0x08, /* Descarcă conținutul memoriei */
AXSIG = 0x10 /* Omorât de un semnal */ };

Tipul de date comp_t este o valoare în virgulă mobilă care constă dintr-un exponent de 3 biți, în baza 8, și o mantisă de 13 biți. O valoare, c, de acest tip poate fi convertită într-un număr întreg (lung) după cum urmează:


v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3);

Câmpurile ac_utime, ac_stime și ac_etime măsoară timpul în „tic-tacuri de ceas”; împărțiți aceste valori cu sysconf(_SC_CLK_TCK) pentru a le converti în secunde.

Formatul fișierului de contabilizare versiunea 3

Începând cu Linux 2.6.8, o versiune alternativă opțională a fișierului de contabilizare poate fi produsă dacă opțiunea CONFIG_BSD_PROCESS_ACCT_V3 este activată la compilarea nucleului. Cu această opțiune activată, înregistrările scrise în fișierul de contabilizare conțin câmpuri suplimentare, iar lățimea câmpurilor c_uid și ac_gid este lărgită de la 16 la 32 de biți (în conformitate cu dimensiunea crescută a UID și GID din Linux 2.4 și ulterior). Înregistrările sunt definite după cum urmează:


struct acct_v3 {

char ac_flag; /* Fanioane */
char ac_version; /* Stabilit întotdeauna la ACCT_VERSION (3) */
u_int16_t ac_tty; /* Terminalul de control*/
u_int32_t ac_exitcode; /* Starea de terminare a procesului */
u_int32_t ac_uid; /* Id-ul de utilizator real */
u_int32_t ac_gid; /* Id-ul de grup real */
u_int32_t ac_pid; /* Id-ul procesului */
u_int32_t ac_ppid; /* Id-ul procesului părinte */
u_int32_t ac_btime; /* Ora și data de creare a procesului */
float ac_etime; /* Timpul scurs */
comp_t ac_utime; /* Timpul CPU al utilizatorului */
comp_t ac_stime; /* Timpul CPU al sistemului */
comp_t ac_mem; /* Media de utilizare a memoriei (ko) */
comp_t ac_io; /* Caracterele transferate (neutilizate) */
comp_t ac_rw; /* Blocurile citite sau scrise
(neutilizate) */
comp_t ac_minflt; /* Defecțiuni minore de pagină */
comp_t ac_majflt; /* Defecțiuni majore de pagină */
comp_t ac_swaps; /* Numărul de swap-uri (neutilizate) */
char ac_comm[ACCT_COMM]; /* Numele comenzii */ };

VERSIUNI

Deși este prezentă pe majoritatea sistemelor, nu este standardizată, iar detaliile variază oarecum de la un sistem la altul.

STANDARDE

Niciunul.

ISTORIC

glibc 2.6.

Contabilizarea proceselor a luat naștere în BSD.

NOTE

Înregistrările din fișierul de contabilizare sunt ordonate în funcție de ora de încheiere a procesului.

Până la Linux 2.6.9 inclusiv, se scrie o înregistrare contabilă separată pentru fiecare fir de execuție creat cu ajutorul bibliotecii de fire de execuție NPTL; începând cu Linux 2.6.10, se scrie o singură înregistrare contabilă pentru întregul proces la terminarea ultimului fir de execuție din proces.

Fișierul /proc/sys/kernel/acct, descris în proc(5), definește parametrii care controlează comportamentul contabilizării proceselor atunci când spațiul pe disc este redus.

CONSULTAȚI ȘI

lastcomm(1), acct(2), accton(8), sa(8)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

3 mai 2023 Pagini de manual de Linux 6.05.01