ACCT(5)

명칭
acct - 실행 어카운트 파일

서식
<sys/types.h> <sys/acct.h>

해설
커널은, 아래와 같은 acct 정보 구조를, 전프로세스에 대해서 관리합니다. 프로세스가 종료하면(자), 어카운팅이 유효하게 되어 있는 경우에는, 커널은 acct(2) 함수 호출을 실시해, 어카운팅 파일에 기록을 추가합니다.

    /*
     * 어카운팅 구조체; 이것들은, 기저치 8 의 3 비트 지수부 및
     * 13 비트 소수부의 ``부동 소수점수(실수)''인 comp_t 형을 사용합니다.
     * 단위는 1/AHZ 초입니다.
     */
    typedef u_short comp_t;
    #define AC_COMM_LEN 16
    struct acct {
    	char	ac_comm[AC_COMM_LEN];  /* 명령명 */
    	comp_t	ac_utime;	/* 유저 시간 */
    	comp_t	ac_stime;	/* 시스템 시간 */
    	comp_t	ac_etime;	/* 경과시간 */
    	time_t	ac_btime;	/* 개시시각 */
    	uid_t	ac_uid;		/* 유저 ID */
    	gid_t	ac_gid;		/* 그룹 ID */
    	short	ac_mem;		/* 평균 메모리 사용량 */
    	comp_t	ac_io;		/* 입출력 블록수 */
    	dev_t	ac_tty;		/* 제어 tty */
    #define	AFORK	0x01		/* fork 했지만 exec 되어 있지 않다 */
    #define	ASU	0x02		/* 슈퍼 유저 권한을 사용했다 */
    #define	ACOMPAT	0x04		/* 호환 모드를 사용했다 */
    #define	ACORE	0x08		/* 코어덤프 했다 */
    #define	AXSIG	0x10		/* 시크날에 의해 kill 되었다 */
    	char	ac_flag;	/* 어카운팅 플래그 */
    };
    /*
     * 1/AHZ 의 입도로, 데이터는 comp_t 필드에 encode 됩니다.
     * 반드시 주파수로 동일이 된다고는 할 수 없습니다.
     */
    #define	AHZ	64

종료한 프로세스가 execve(2) 에 의해 생성된 것이었던 경우, 실행된 파일의 파일명 (최대 10 캐릭터까지)이 ac_comm 필드에 보존되어 그 상태는 ac_flag 의 다음의 플래그의 1 개 이상을 설정하는 것으로써 보존됩니다: AFORK, ASU, ACOMPAT, ACORE, ASIG

관련 항목
acct(2), execve(2), sa(8)

역사
acct 파일 포맷은 AT&T UNIX (으)로부터 등장했습니다.