.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2008, Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ACCT 5 "15 Septiembre 2017" Linux "Manual del Programador de Linux" .SH NOMBRE acct \- Archivo para la contabilidad de procesos .SH SINOPSIS \fB#include \fP .SH DESCRIPCIÓN Si el núcleo fue compilado con la opción \fBCONFIG_BSD_PROCESS_ACCT\fP activada, se podrá iniciar la contabilidad de procesos mediante la llamada \fBacct\fP(2). Por ejemplo: .PP .in +4n acct("/var/log/pacct"); .in .PP Cuando la contabilidad está activada, el núcleo anota un registro en el archivo cada vez que un proceso termina. Dicho registro contiene información acerca del proceso y su estructura se define en \fI\fP del siguiente modo: .PP .in +4n .EX #define ACCT_COMM 16 typedef u_int16_t comp_t; struct acct { char ac_flag; /* Opciones de la contabilidad */ u_int16_t ac_uid; /* ID del usuario*/ u_int16_t ac_gid; /* ID del grupo*/ u_int16_t ac_tty; /* Terminal que lo gestiona */ u_int32_t ac_btime; /* Hora de creación del proces (segundos desde el inicio) */ comp_t ac_utime; /* Tiempo de CPU usado por el usuario*/ comp_t ac_stime; /* Tiempo de CPU usado por el sistema */ comp_t ac_etime; /* Tiempo transcurrido */ comp_t ac_mem; /* Media del uso de memoria (kB) */ comp_t ac_io; /* Caracteres transferidos (no usado) */ comp_t ac_rw; /* Bloques leidos o escritos (no usado) */ comp_t ac_minflt; /* Errores leves de paginación */ comp_t ac_majflt; /* Errores graves de paginación */ comp_t ac_swaps; /* Cantidad de intercambios (no usado) */ u_int32_t ac_exitcode; /* Estado de finalización del proceso (consulte wait(2)) */ char ac_comm[ACCT_COMM+1]; /* Nombre de la orden (nombre de la última orden ejecutada; con salida cero) */ char ac_pad[\fIX\fP]; /* bytes de relleno */ }; enum { /* Esto puede definirse en el campo ac_flag */ AFORK = 0x01, /* Se ejecutó fork pero no exec */ ASU = 0x02, /* Empleó privilegios de administrador */ ACORE = 0x08, /* Volcadod e pila */ AXSIG = 0x10 /* Terminado por una señal */ }; .EE .in .PP El tipo de datos \fIcomp_t\fP es un valor de punto flotante que consta de un exponente de base 8 de 3 bits y una mantisa de 13 bits. Un valor, \fIc\fP, de este tipo se puede convertir en un entero (grande) del siguiente modo: .PP .nf v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3); .fi .PP Los campo \fIac_utime\fP, \fIac_stime\fP y \fIac_etime\fP miden el tiempo en "tics de reloj" dividiendo ese valor entre \fIsysconf(_SC_CLK_TCK)\fP para convertirlo en segundos. .SS "Formato de archivo para la versión 3" A partir de la versión 2.6.8 del núcleo es posible crear una versión alternativa del archivo de contabilidad si el núcleo ha sido compilado con la opción \fBCONFIG_BSD_PROCESS_ACCT_V3\fP activada. En este caso, el registro contiene algunos campos adicionales y el tamaño de los campos \fIc_uid\fP and \fIac_gid\fP se incrementa de 16 a 32 bits (en línea con el incremento del tamaño de los UID y GIDs desde la versión 2.4. Estos registros se definen del siguiente modo: .PP .in +4n .EX struct acct_v3 { char ac_flag; /* Flags */ char ac_version; /* Always set to ACCT_VERSION (3) */ u_int16_t ac_tty; /* Controlling terminal */ u_int32_t ac_exitcode; /* Process termination status */ u_int32_t ac_uid; /* Real user ID */ u_int32_t ac_gid; /* Real group ID */ u_int32_t ac_pid; /* Process ID */ u_int32_t ac_ppid; /* Parent process ID */ u_int32_t ac_btime; /* Process creation time */ float ac_etime; /* Elapsed time */ comp_t ac_utime; /* User CPU time */ comp_t ac_stime; /* System time */ comp_t ac_mem; /* Average memory usage (kB) */ comp_t ac_io; /* Characters transferred (unused) */ comp_t ac_rw; /* Blocks read or written (unused) */ comp_t ac_minflt; /* Minor page faults */ comp_t ac_majflt; /* Major page faults */ comp_t ac_swaps; /* Number of swaps (unused) */ char ac_comm[ACCT_COMM]; /* Command name */ }; .EE .in .SH VERSIONES La estructura de \fIacct_v3\fP está definida desde la versión 2.6 de glibc. .SH "CONFORME A" La contabilidad de procesos se originó en BSD. Aunque está presente en muchos sistemas, su funcionamiento no está estandarizado y puede variar entre unos y otros. .SH NOTAS Los registros se ordenan según la hora de finalización. .PP A partir de la versión 2.6.9 del núcleo, se guarda un registro distinto para cada hilo creado con la biblioteca NPTL. A partir de la versión 2.6.10 sólo se guarda un único registro para todo el proceso una vez que termine el último hilo del mismo. .PP El archivo \fI/proc/sys/kernel/acct\fP, descrito en \fBproc\fP(5), define como funciona la contabilidad de procesos cuando existe poco espacio en el disco. .SH "VÉASE TAMBIÉN" \fBlastcomm\fP(1), \fBacct\fP(2), \fBaccton\fP(8), \fBsa\fP(8) .SH COLOFÓN Esta página es parte de la versión 5.10 del proyecto Linux \fIman\-pages\fP. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars y Marcos Fouces . Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org>. .ME .