ACCT(5) | FreeBSD File Formats Manual | ACCT(5) |
名称
acct — 実行アカウンティングファイル解説
カーネルは、すべてのプロセスのために次の acct 情報構造体を維持しています。プロセスが終了し、アカウンティングが有効であるなら、カーネルは、準備して、アカウンティングファイルにレコードを追加するために、 acct(2) 関数を呼び出します。
#define AC_COMM_LEN 16 /* * アカウンティング構造体バージョン 2 (current). * 最初のバイトは, 常に 0 です. * 時間の単位は, マイクロ秒です. */ struct acctv2 { uint8_t ac_zero; /* 0 は, 新しいバージョンを識別 する */ uint8_t ac_version; /* レコードバージョン番号 */ uint16_t ac_len; /* レコード長 */ char ac_comm[AC_COMM_LEN]; /* コマンド名 */ float ac_utime; /* ユーザ時間 */ float ac_stime; /* システム時間 */ float ac_etime; /* 経過時間 */ time_t ac_btime; /* 開始時刻 */ uid_t ac_uid; /* ユーザ ID */ gid_t ac_gid; /* グループ ID */ float ac_mem; /* 平均メモリ使用量 */ float ac_io; /* IO ブロックの数 */ __dev_t ac_tty; /* 制御 tty */ uint16_t ac_len2; /* レコード長 */ union { __dev_t ac_align; /* 強制 v1 互換整列 */ #define AFORK 0x01 /* fork したが, exec していない */ /* ASU は, もはやサポートされません */ #define ASU 0x02 /* 使用されたスーパユーザの パーミッション */ #define ACOMPAT 0x04 /* 使用された互換モード */ #define ACORE 0x08 /* ダンプされたコア */ #define AXSIG 0x10 /* シグナルによって kill された */ #define ANVER 0x20 /* 新しいレコードバージョン */ uint8_t ac_flag; /* アカウンティングフラグ */ } ac_trailer; #define ac_flagx ac_trailer.ac_flag };
終了したプロセスが execve(2) によって作成されていたなら、実行されたファイルのファイルの名前 (その最大 10 文字) は、フィールド ac_comm に保存され、その状態は、 ac_flag に次のフラグの 1 つ以上を設定することによって保存されます: AFORK, ACOMPAT, ACORE と ASIG。 ASU は、もはやサポートされていません。 ANVER は、上記の構造体で常に設定されます。
歴史
acct ファイル形式は、 Version 7 AT&T UNIX で登場しました。現在のレコード形式は、2007 年 5 月に導入されました。それは、 < sys/acct.h> にまだ文書化されている以前の形式と後方互換性があり、 lastcomm(1) と sa(8) によってサポートされています。May 15, 2007 | FreeBSD |