Provided by: manpages-pl_4.18.1-1_all bug

NAZWA

       acct - plik ewidencji procesu

SKŁADNIA

       #include <sys/acct.h>

OPIS

       Jeśli    jądro    zostało    zbudowane    z   włączoną   opcją ewidencjonowania   procesów
       (CONFIG_BSD_PROCESS_ACCT),   to   wywołanie   funkcji   systemowej   acct(2)   włącza   to
       ewidencjonowanie, na przykład:

           acct("/var/log/pacct");

       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 <sys/acct.h> następująco:

           #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[X];    /* 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 */
           };

       Typ danych comp_t jest wartością zmiennoprzecinkową składającą się z 3-bitowego wykładnika
       o podstawie 8 oraz 13-bitowej mantysy. Wartość c tego typu można skonwertować do typu long
       integer w następujący sposób:

           v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3);

       Pola  ac_utime,  ac_stime  oraz  ac_etime  odmierzają  czas  w  "tyknięciach  zegara"; aby
       skonwertować go na sekundy, należy podzielić te wartości przez sysconf(_SC_CLK_TCK).

   Wersja 3 formatu pliku ewidencji
       Since Linux 2.6.8, an optional alternative version of the accounting file can be  produced
       if  the  CONFIG_BSD_PROCESS_ACCT_V3  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  c_uid  and  ac_gid  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:

           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 */
           };

WERSJE

       The acct_v3 structure is defined since glibc 2.6.

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.

UWAGI

       Rekordy pliku ewidencji są posortowane po czasie zakończenia procesu.

       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.

       The  /proc/sys/kernel/acct  file,  described in proc(5), defines settings that control the
       behavior of process accounting when disk space runs low.

ZOBACZ TAKŻE

       lastcomm(1), acct(2), accton(8), sa(8)

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>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.