.\" -*- coding: UTF-8 -*-
.\" Copyright (C) 2008, Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH acct 5 "4 grudnia 2022 r." "Linux man\-pages 6.03" 
.SH NAZWA
acct \- plik ewidencji procesu
.SH SKŁADNIA
.nf
\fB#include <sys/acct.h>\fP
.fi
.SH OPIS
Jeśli jądro zostało zbudowane z włączoną opcją\ ewidencjonowania procesów
(\fBCONFIG_BSD_PROCESS_ACCT\fP), to wywołanie funkcji systemowej \fBacct\fP(2)
włącza to ewidencjonowanie, na przykład:
.PP
.in +4n
acct("/var/log/pacct");
.in
.PP
Kiedy ewidencjonowanie procesów jest włączone, jądro zapisuje rekord do
pliku ewidencji dla każdego zakończonego procesu w systemie. Rekord ten
zawiera informacje o zakończonym procesie i jest zdefiniowany
\fI<sys/acct.h>\fP następująco:
.PP
.in +4n
.EX
#define ACCT_COMM 16

typedef u_int16_t comp_t;

struct acct {
    char ac_flag;           /* Znaczniki ewidencjonowania */
    u_int16_t ac_uid;       /* ID użytkownika */
    u_int16_t ac_gid;       /* ID grupy */
    u_int16_t ac_tty;       /* Terminal sterujący */
    u_int32_t ac_btime;     /* Czas utworzenia procesu
                               (w sekundach od początku epoki) */
    comp_t    ac_utime;     /* Czas CPU użytkownika*/
    comp_t    ac_stime;     /* Czas CPU systemu */
    comp_t    ac_etime;     /* Czas działania procesu */
    comp_t    ac_mem;       /* Średnie użycie pamięci (kB) */
    comp_t    ac_io;        /* Przesłane znaki (nieużywane) */
    comp_t    ac_rw;        /* Bloki odczytane lub zapisane (nieużywane) */
    comp_t    ac_minflt;    /* Mniejsze błędy stron */
    comp_t    ac_majflt;    /* Większe błędy stron */
    comp_t    ac_swaps;     /* Liczba wymian (nieużywane) */
    u_int32_t ac_exitcode;  /* Status zakończenia procesu
                               (patrz wait(2)) */
    char      ac_comm[ACCT_COMM+1];
                            /* Nazwa polecenia (zakończona znakiem null
                               nazwa bazowa ostatnio wykonywanego polecenia) */
    char      ac_pad[\fIX\fP];    /* bajty wyrównania */
};

enum {          /* Bity, które mogą być\ ustawione w polu ac_flag */
    AFORK = 0x01,           /* Wykonał fork, ale nie exec */
    ASU   = 0x02,           /* Używał przywilejów administratora */
    ACORE = 0x08,           /* Wykonał zrzut pamięci (core) */
    AXSIG = 0x10            /* Został zabity sygnałem */
};
.EE
.in
.PP
Typ danych \fIcomp_t\fP jest wartością zmiennoprzecinkową składającą się z
3\-bitowego wykładnika o podstawie 8 oraz 13\-bitowej mantysy. Wartość \fIc\fP
tego typu można skonwertować do typu long integer w następujący sposób:
.PP
.nf
    v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3);
.fi
.PP
Pola \fIac_utime\fP, \fIac_stime\fP oraz \fIac_etime\fP odmierzają czas w
"tyknięciach zegara"; aby skonwertować go na sekundy, należy podzielić te
wartości przez \fIsysconf(_SC_CLK_TCK)\fP.
.SS "Wersja 3 formatu pliku ewidencji"
Since Linux 2.6.8, an optional alternative version of the accounting file
can be produced if the \fBCONFIG_BSD_PROCESS_ACCT_V3\fP option is set when
building the kernel.  With this option is set, the records written to the
accounting file contain additional fields, and the width of \fIc_uid\fP and
\fIac_gid\fP fields is widened from 16 to 32 bits (in line with the increased
size of UID and GIDs in Linux 2.4 and later).  The records are defined as
follows:
.PP
.in +4n
.EX
struct acct_v3 {
    char      ac_flag;      /* Znaczniki */
    char      ac_version;   /* Zawsze ustawione na ACCT_VERSION (3) */
    u_int16_t ac_tty;       /* Terminal sterujący */
    u_int32_t ac_exitcode;  /* Stan zakończenia procesu */
    u_int32_t ac_uid;       /* Rzeczywiste ID użytkownika */
    u_int32_t ac_gid;       /* Rzeczywiste ID grupy */
    u_int32_t ac_pid;       /* ID procesu */
    u_int32_t ac_ppid;      /* ID procesu rodzica */
    u_int32_t ac_btime;     /* Czas utworzenia procesu */
    float     ac_etime;     /* Czas działania procesu */
    comp_t    ac_utime;     /* Czas CPU użytkownika */
    comp_t    ac_stime;     /* Czas CPU systemu */
    comp_t    ac_mem;       /* Średnie zużycie pamięci (kB) */
    comp_t    ac_io;        /* Transferowane znaki(nieużywane) */
    comp_t    ac_rw;        /* Bloki przeczytane lub zapisane
                               (nieużywane) */
    comp_t    ac_minflt;    /* Mniejsze błędy stron */
    comp_t    ac_majflt;    /* Większe błędy stron */
    comp_t    ac_swaps;     /* Liczba wymian (nieużywane) */
    char      ac_comm[ACCT_COMM]; /* Nazwa polecenia */
};
.EE
.in
.SH WERSJE
The \fIacct_v3\fP structure is defined since glibc 2.6.
.SH STANDARDY
Ewidencjonowanie procesów ma swój początek w systemach BSD. Chociaż jest
obsługiwane przez większość systemów, to nie jest ustandaryzowane, więc
szczegóły implementacji mogą się różnić między systemami.
.SH UWAGI
Rekordy pliku ewidencji są posortowane po czasie zakończenia procesu.
.PP
Up to and including Linux 2.6.9, a separate accounting record is written for
each thread created using the NPTL threading library; since Linux 2.6.10, a
single accounting record is written for the entire process on termination of
the last thread in the process.
.PP
The \fI/proc/sys/kernel/acct\fP file, described in \fBproc\fP(5), defines settings
that control the behavior of process accounting when disk space runs low.
.SH "ZOBACZ TAKŻE"
\fBlastcomm\fP(1), \fBacct\fP(2), \fBaccton\fP(8), \fBsa\fP(8)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>,
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
