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

Structura acct_v3 este definită începând cu glibc 2.6.

STANDARDE

Contabilizarea proceselor a luat naștere în BSD. Deși este prezentă pe majoritatea sistemelor, nu este standardizată, iar detaliile variază oarecum de la un sistem la altul.

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.

4 decembrie 2022 Pagini de manual de Linux 6.03