Linux中utmp結構定義如下:
structutmp
{
short int ut_type; // 登錄類型
pid_t ut_pid; // login進程的pid
char ut_line[UT_LINE_SIZE]; // 登錄裝置名,省略了"/dev/"
char ut_id[4]; // Inittab ID
char ut_user[UT_NAMESIZE]; // 登錄賬號
char ut_host[UT_HOSTSIZE]; // 登錄賬號的遠程主機名稱
struct exit_status ut_exit; // 當類型為DEAD_PROCESS時進程的結束狀態
long int ut_session; // SessionID
struct timeval ut_tv; // 時間記錄
int32_t ut_addr_v6[4]; // 遠程主機的網路地址
char __unused[20]; // 保留未使用
};
ut_type有以下幾種類型:
| EMPTY | 此為空的記錄 |
| RUN_LVL | 記錄系統run-level的改變 |
| BOOT_TIME | 記錄系統開機時間 |
| NEW_TIME | 記錄系統時間改變後的時間 |
| OLD_TIME | 記錄當改變系統時間時的時間 |
| INIT_PROCESS | 記錄一個由init衍生出來的進程 |
| LOGIN_PROCESS | 記錄login進程 |
| USER_PROCESS | 記錄一般進程 |
| DEAD_PROSESS | 記錄一結束的進程 |
| ACCOUNTING | 目前尚未被使用 |
exit_status結構定義:
structexit_status
{
short int e_termination; //進程結束狀態
short int e_exit; //進程退出狀態
};
