acct(5) File Formats Manual acct(5) NUME acct - fiierul de contabilizare a proceselor REZUMAT #include DESCRIERE Daca nucleul este construit cu opiunea de contabilizare a proceselor activata (CONFIG_BSD_PROCESS_ACCT), atunci apelarea acct(2) pornete contabilizarea proceselor, de exemplu: acct("/var/log/pacct"); Atunci cand contabilizarea proceselor este activata, nucleul scrie o inregistrare in fiierul de contabilitate atunci cand fiecare proces din sistem se termina. Aceasta inregistrare conine informaii despre procesul terminat i este definita in dupa cum urmeaza: #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 Epoca)*/ 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; /* Defeciuni minore de pagina */ comp_t ac_majflt; /* Defeciuni majore de pagina */ comp_t ac_swaps; /* Numarul 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 baza al ultimei comenzi executate; terminata cu null) */ char ac_pad[X]; /* octei de umplutura */ }; enum { /* Biii care pot fi stabilii in campul ac_flag */ AFORK = 0x01, /* A executat <>, dar nu <> */ ASU = 0x02, /* Privilegii de superutilizator utilizate */ ACORE = 0x08, /* Descarca coninutul memoriei */ AXSIG = 0x10 /* Omorat de un semnal */ }; Tipul de date comp_t este o valoare in virgula mobila care consta dintr-un exponent de 3 bii, in baza 8, i o mantisa de 13 bii. O valoare, c, de acest tip poate fi convertita intr-un numar intreg (lung) dupa cum urmeaza: v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3); Campurile ac_utime, ac_stime i ac_etime masoara timpul in ,,tic-tacuri de ceas"; imparii aceste valori cu sysconf(_SC_CLK_TCK) pentru a le converti in secunde. Formatul fiierului de contabilizare versiunea 3 Incepand cu Linux 2.6.8, o versiune alternativa opionala a fiierului de contabilizare poate fi produsa daca opiunea CONFIG_BSD_PROCESS_ACCT_V3 este activata la compilarea nucleului. Cu aceasta opiune activata, inregistrarile scrise in fiierul de contabilizare conin campuri suplimentare, iar laimea campurilor c_uid i ac_gid este largita de la 16 la 32 de bii (in conformitate cu dimensiunea crescuta a UID i GID din Linux 2.4 i ulterior). Inregistrarile sunt definite dupa cum urmeaza: struct acct_v3 { char ac_flag; /* Fanioane */ char ac_version; /* Stabilit intotdeauna 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 parinte */ 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; /* Defeciuni minore de pagina */ comp_t ac_majflt; /* Defeciuni majore de pagina */ comp_t ac_swaps; /* Numarul de swap-uri (neutilizate) */ char ac_comm[ACCT_COMM]; /* Numele comenzii */ }; VERSIUNI Dei este prezenta pe majoritatea sistemelor, nu este standardizata, iar detaliile variaza oarecum de la un sistem la altul. STANDARDE Niciunul. ISTORIC glibc 2.6. Contabilizarea proceselor a luat natere in BSD. NOTE Inregistrarile din fiierul de contabilizare sunt ordonate in funcie de ora de incheiere a procesului. Pana la Linux 2.6.9 inclusiv, se scrie o inregistrare contabila separata pentru fiecare fir de execuie creat cu ajutorul bibliotecii de fire de execuie NPTL; incepand cu Linux 2.6.10, se scrie o singura inregistrare contabila pentru intregul proces la terminarea ultimului fir de execuie din proces. Fiierul /proc/sys/kernel/acct, descris in proc(5), definete parametrii care controleaza comportamentul contabilizarii proceselor atunci cand spaiul pe disc este redus. CONSULTAI I lastcomm(1), acct(2), accton(8), sa(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 acct(5)