Hiermit kann der Kernel angewiesen werden, Prozessinformationen
in eine Datei zu schreiben. Der Aufruf hierzu erfolgt durch einen
sspeziellen Systemaufruf eines Programmes im Userspace. Wenn der
betreffende Prozess später beendet wird, werden Informationen
darüber an die Datei angehangen. Diese Informationen umfassen u.a.:
- Zeit der Erzeugung
- User ID und Group ID
- Aufrufbefehl
- Speicherverbrauch
- kontrollierendes Terminal
Eine genaue Übersicht findet sich in der Datei include/linux/acct.h.
Dort befindet sich folgender struct acct
:
struct acct
{
char ac_flag; /* Accounting Flags */
/*
* No binary format break with 2.0 - but when we hit 32bit uid we'll
* have to bite one
*/
__u16 ac_uid; /* Accounting Real User ID */
__u16 ac_gid; /* Accounting Real Group ID */
__u16 ac_tty; /* Accounting Control Terminal */
__u32 ac_btime; /* Accounting Process Creation Time */
comp_t ac_utime; /* Accounting User Time */
comp_t ac_stime; /* Accounting System Time */
comp_t ac_etime; /* Accounting Elapsed Time */
comp_t ac_mem; /* Accounting Average Memory Usage */
comp_t ac_io; /* Accounting Chars Transferred */
comp_t ac_rw; /* Accounting Blocks Read or Written */
comp_t ac_minflt; /* Accounting Minor Pagefaults */
comp_t ac_majflt; /* Accounting Major Pagefaults */
comp_t ac_swaps; /* Accounting Number of Swaps */
__u32 ac_exitcode; /* Accounting Exitcode */
char ac_comm[ACCT_COMM + 1]; /* Accounting Command Name */
char ac_pad[10]; /* Accounting Padding Bytes */
};
Normalerweise sollte ein Programm nützliche Dinge mit diesen Informationen
machen.