acct(5) | File Formats Manual | acct(5) |
NUME
acct - fișierul de contabilizare a proceselor
SINOPSIS
#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
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.
2 mai 2024 | Pagini de manual de Linux 6.8 |