acct(5)

acct5

Execution accounting file

Usage

#include <sys/types.h>

#include <sys/acct.h>

Overview

The kernel maintains the following acct information structure for all processes. If a process terminates, and accounting is enabled, the kernel calls the acct(2) function call to prepare and append the record to the accounting file.

#define AC_COMM_LEN 16
/*
 * Accounting structure version 3 (current).
 * The first byte is always zero.
 * Time units are microseconds.
 */
struct acctv3 {
	uint8_t  ac_zero;		/* zero identifies new version */
	uint8_t  ac_version;		/* record version number */
	uint16_t ac_len;		/* record length */
	char	  ac_comm[AC_COMM_LEN];	/* command name */
	float	  ac_utime;		/* user time */
	float	  ac_stime;		/* system time */
	float	  ac_etime;		/* elapsed time */
	time_t	  ac_btime;		/* starting time */
	uid_t	  ac_uid;		/* user id */
	gid_t	  ac_gid;		/* group id */
	float	  ac_mem;		/* average memory usage */
	float	  ac_io;		/* count of IO blocks */
	__dev_t   ac_tty;		/* controlling tty */
	uint16_t ac_len2;		/* record length */
	union {
		uint32_t  ac_align;	/* force v1 compatible alignment */
#define	AFORK	0x01			/* forked but not exec'ed */
/* ASU is no longer supported */
#define	ASU	0x02			/* used super-user permissions */
#define	ACOMPAT	0x04			/* used compatibility mode */
#define	ACORE	0x08			/* dumped core */
#define	AXSIG	0x10			/* killed by a signal */
#define ANVER	0x20			/* new record version */
		uint8_t  ac_flag;	/* accounting flags */
	} ac_trailer;
#define ac_flagx ac_trailer.ac_flag
};

If a terminated process was created by an execve(2), the name of the executed file (at most ten characters of it) is saved in the field ac_comm and its status is saved by setting one of more of the following flags in ac_flag: AFORK, ACOMPAT, ACORE and ASIG. ASU is no longer supported. ANVER is always set in the above structure.

Releases

87 releases since FreeBSD 2.0.5-RELEASE; the text changed 44 times.

  1. 2.0.5–2.1.7.1
  2. 2.2.2–2.2.5
  3. 2.2.6
  4. 2.2.7–2.2.8
  5. 2.2.9
  6. 3.0–3.2
  7. 3.3–3.4
  8. 3.5–3.5.1
  9. 4.0–4.2
  10. 4.3–4.4
  11. 4.5–4.11
  12. 5.0–6.3
  13. 6.4
  14. 7.0
  15. 7.1
  16. 7.2
  17. 7.3
  18. 7.4
  19. 8.0
  20. 8.1
  21. 8.2
  22. 8.3
  23. 8.4
  24. 9.0
  25. 9.1
  26. 9.2
  27. 9.3
  28. 10.0
  29. 10.1
  30. 10.2
  31. 10.3
  32. 10.4
  33. 11.0
  34. 11.1
  35. 11.2
  36. 11.3
  37. 11.4
  38. 12.0
  39. 12.1
  40. 12.2
  41. 12.3
  42. 12.4
  43. 13.0–13.2
  44. 13.3–14.5
  45. 15.0–16.0

History

A acct file format appeared in Version 7 AT&T UNIX. The current record format was introduced on May 2007. It is backwards compatible with the previous format, which is still documented in ⟨sys/acct.h⟩ and supported by lastcomm(1) and sa(8).

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.