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> ».