Loading

NOM

       acct - Fichier de comptabilité des processus

SYNOPSIS

       #include <sys/acct.h>

       Si  le  noyau a été compilé avec l’option de comptabilité des processus
       activée (CONFIG_BSD_PROCESS_ACCT), l’appel système acct(2)  démarre  la
       comptabilité. Par exemple :

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

       Quand la comptabilité des processus est activée, le noyau écrit dans le
       fichier indiqué un enregistrement à chaque  mort  d’un  processus.  Cet
       enregistrement   contient  des  informations  concernant  le  processus
       terminé, décrites dans <sys/acct.h> ainsi :

           #define ACCT_COMM 16

           typedef u_int16_t comp_t;

           struct acct {
               char      ac_flag;      /* Attribut de comptabilité */
               u_int16_t ac_uid;       /* UID comptabilisé */
               u_int16_t ac_gid;       /* GID comptabilisé */
               u_int16_t ac_tty;       /* Terminal de contrôle */
               u_int32_t ac_btime;     /* Heure de création du processus */
                                          (secondes depuis 01/01/1970) */
               comp_t    ac_utime;     /* Temps CPU en mode utilisateur */
               comp_t    ac_stime;     /* Temps CPU en mode noyau */
               comp_t    ac_etime;     /* Temps écoulé */
               comp_t    ac_mem;       /* Moyenne mémoire utilisée (ko) */
               comp_t    ac_io;        /* Caractères transmis (inutilisé) */
               comp_t    ac_rw;        /* Blocs lus ou écrits (inutilisé) */
               comp_t    ac_minflt;    /* Nb fautes de pages mineures */
               comp_t    ac_majflt;    /* Nb fautes de pages majeures */
               comp_t    ac_swaps;     /* Nb de swaps (inutilisé) */
               u_int32_t ac_exitcode;  /* Code de retour - voir wait(2) */
               char      ac_comm[ACCT_COMM+1];
                                       /* Nom de la commande (nom de base
                                          de la dernière commande exécutée
                                          terminé par zéro) */
               char      ac_pad[X];    /* Remplissage */
           };

           enum {          /* Bits qui peuvent se trouver dans ac_flag */
               AFORK = 0x01,           /* A exécuté fork mais pas exec */
               ASU   = 0x02,           /* A utilisé les privilèges superutilisateur */
               ACORE = 0x08,           /* A créé un fichier core */
               AXSIG = 0x10            /* Tué par un signal */
           };

       Le type de donnée comp_t est une valeur réelle constituée d’un exposant
       en base 8 sur 3 bits et d’une mantisse sur 13 bits. Une valeur c, de ce
       type peut être convertie en entier (long) ainsi :

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

       Les champs ac_utime, ac_stime, et ac_etime mesurent les temps en  «tops
       d’horloge ».  Divisez ces valeurs par sysconf(_SC_CLK_TCK) pour obtenir
       des secondes.

   Format des fichiers de comptabilité version 3
       Depuis  le  noyau  2.6.8,  une  autre  version  du  fichier  peut  être
       éventuellement  produite,  si  l’option  CONFIG_BSD_PROCESS_ACCT_V3 est
       définie lors de la compilation  du  noyau.  Lorsque  cette  option  est
       active,  les  enregistrements  écrits  dans  le fichier de comptabilité
       contiennent des champs supplémentaires et la longueur des champs  c_uid
       et  ac_gid  est élargie de 16 à 32 bits (en accord avec l’élargissement
       des  UID  et  GID  dans  les  noyaux  Linux  2.4  et  ultérieur).   Les
       enregistrements sont définis ainsi :

           struct acct_v3 {
               char      ac_flag;      /* Attribut de comptabilité */
               char      ac_version;   /* Vaut toujours ACCT_VERSION (3) */
               u_int16_t ac_tty;       /* Terminal de contrôle */
               u_int32_t ac_exitcode;  /* Code de retour - voir wait(2) */
               u_int32_t ac_uid;       /* UID réel */
               u_int32_t ac_gid;       /* GID réel */
               u_int32_t ac_pid;       /* PID */
               u_int32_t ac_ppid;      /* PPID (PID du parent) */
               u_int32_t ac_btime;     /* Heure de création du processus */
                                          (secondes depuis 01/01/1970) */
               float     ac_etime;     /* Temps écoulé */
               comp_t    ac_utime;     /* Temps CPU en mode utilisateur */
               comp_t    ac_stime;     /* Temps CPU en mode noyau */
               comp_t    ac_mem;       /* Moyenne mémoire utilisée (ko) */
               comp_t    ac_io;        /* Caractères transmis (inutilisé) */
               comp_t    ac_rw;        /* Blocs lus ou écrits (inutilisé) */
               comp_t    ac_minflt;    /* Nb fautes de pages mineures */
               comp_t    ac_majflt;    /* Nb fautes de pages majeures */
               comp_t    ac_swaps;     /* Nb de swaps (inutilisé) */
               char      ac_comm[ACCT_COMM];
                                       /* Nom de la commande */
           };

VERSIONS

       La structure acct_v3 est définie dans la glibc depuis la version 2.6.

CONFORMITÉ

       La  comptabilité  des  processus  provient  de  BSD.  Bien qu’elle soit
       implémentée sur la plupart des systèmes, elle n’est pas  normalisée  et
       varie parfois entre les systèmes.

NOTES

       Les  enregistrements  dans  le  fichier de comptabilité sont classés en
       fonction de l’heure de fin des processus.

       Dans les noyaux jusqu’au 2.6.9 (inclus), un enregistrement séparé était
       écrit  pour  chaque thread utilisant la bibliothèque NPTL. Depuis Linux
       2.6.10, un enregistrement unique est écrit pour l’ensemble du processus
       à la fin de son dernier thread.

       Le  fichier  proc/sys/kernel/acct  décrit  dans  proc(5),  configure le
       comportement de la comptabilité des processus lorsque  l’espace  disque
       commence à manquer.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement      gérées      par      Jean-Luc      Coulon      (f5ibh)
       <jean-luc.coulon@wanadoo.fr>  et  l’équipe francophone de traduction de
       Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».