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 Linux (nepublicate) |