Provided by: manpages-pl_4.21.0-2_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⟩.