acct(5) File Formats Manual acct(5) NOMBRE acct - Archivo para la contabilidad de procesos SINOPSIS #include DESCRIPCION Si el nucleo fue compilado con la opcion CONFIG_BSD_PROCESS_ACCT activada, se podra iniciar la contabilidad de procesos mediante la llamada acct(2). Por ejemplo: acct("/var/log/pacct"); Cuando la contabilidad esta activada, el nucleo anota un registro en el archivo cada vez que un proceso termina. Dicho registro contiene informacion acerca del proceso y su estructura se define en del siguiente modo: 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 creacion 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 paginacion */ comp_t ac_majflt; /* Errores graves de paginacion */ comp_t ac_swaps; /* Cantidad de intercambios (no usado) */ u_int32_t ac_exitcode; /* Estado de finalizacion del proceso (consulte wait(2)) */ char ac_comm[ACCT_COMM+1]; /* Nombre de la orden (nombre de la ultima orden ejecutada; con salida cero) */ char ac_pad[X]; /* bytes de relleno */ }; enum { /* Bits que pueden definirse en el campo ac_flag */ AFORK = 0x01, /* Ejecuto fork, pero no exec */ ASU = 0x02, /* Uso permisos de administrador */ ACORE = 0x08, /* Volcado de pila */ AXSIG = 0x10 /* Finalizado mediante una senal */ }; El tipo de datos comp_t 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, c, de este tipo se puede convertir en un entero (grande) del siguiente modo: v = (c & 0x1fff) << (((c >> 13) & 0x7) * 3); Los campo ac_utime, ac_stime y ac_etime miden el tiempo en "tics de reloj" dividiendo ese valor entre sysconf(_SC_CLK_TCK) para convertirlo en segundos. Formato de archivo para la version 3 A partir de la version 2.6.8 del nucleo es posible crear una version alternativa del archivo de contabilidad si el nucleo ha sido compilado con la opcion CONFIG_BSD_PROCESS_ACCT_V3 activada. En este caso, el registro contiene algunos campos adicionales y el tamano de los campos c_uid and ac_gid se incrementa de 16 a 32 bits (en linea con el incremento del tamano de los UID y GIDs desde la version 2.4. Estos registros se definen del siguiente modo: 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 */ }; VERSIONES Aunque esta presente en muchos sistemas, su funcionamiento no esta estandarizado y puede variar entre unos y otros. ESTANDARES Ninguno. HISTORIAL glibc 2.6 Contablidad de procesos creado en BSD. NOTAS Los registros se ordenan segun la hora de finalizacion. A partir de la version 2.6.9 del nucleo, se guarda un registro distinto para cada hilo creado con la biblioteca NPTL. A partir de la version 2.6.10 solo se guarda un unico registro para todo el proceso una vez que termine el ultimo hilo del mismo. El archivo /proc/sys/kernel/acct, descrito en proc(5), define como funciona la contabilidad de procesos cuando existe poco espacio en el disco. VEASE TAMBIEN lastcomm(1), acct(2), accton(8), sa(8) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Miguel Perez Ibars y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de manual de Linux 6.06 31 Octubre 2023 acct(5)