File: utmp.5

package info (click to toggle)
manpages-ja 0.5.0.0.20100315-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 21,156 kB
  • ctags: 1
  • sloc: sh: 13,935; perl: 157; makefile: 114
file content (363 lines) | stat: -rw-r--r-- 12,364 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de),
.\" Fri Apr  2 11:32:09 MET DST 1993
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.\" Modified 1993-07-25 by Rik Faith (faith@cs.unc.edu)
.\" Modified 1995-02-26 by Michael Haardt
.\" Modified 1996-07-20 by Michael Haardt
.\" Modified 1997-07-02 by Nicolas Lichtmaier <nick@debian.org>
.\" Modified 2004-10-31 by aeb, following Gwenole Beauchesne
.\"
.\" Japanese Version Copyright (c) 1997 Kazuyuki Tanisako
.\"         all rights reserved.
.\" Translated 1998-02-16, Kazuyuki Tanisako <tanisako@osa.dec-j.co.jp>
.\" Updated 2003-01-20, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2005-02-21, Akihiro MOTOKI
.\" Updated 2005-10-06, Akihiro MOTOKI
.\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05
.\"
.TH UTMP 5 2008-10-10 "Linux" "Linux Programmer's Manual"
.SH ̾
utmp, wtmp \- Ͽ
.SH 
.B #include <utmp.h>
.SH 
.I utmp
ե򸫤뤳ȤǡïƥȤäƤ뤫Ȥ
롣٤ƤΥץब utmp ե
Ƥ櫓ǤϤʤΤǡºݤˤϤʾΥ桼
ƥȤäƤǽ롣
.PP
.B ٹ:
(򤫤ˤ) ¿Υƥץब˰¸ƤΤǡ
.I utmp
ե "other" ʬव桼Ф
񤭹߲ǽˤƤϤʤʤ
եνͭԤȥ롼ץʡʳΥ桼Ф
.I utmp
ե񤭹߲ǽʾ֤ˤƤȡ
ƥΥե¤줿ꡢƥե
ȤäꥹȤȤˤʤ롣
.PP
Υե
.I utmp
¤Τη֤ǹ롣
ι¤Τ
.I <utmp.h>
ǰʲΤ褦Ƥ
(˵ҤƤΤϴĤޤΤߤǡ
ܺ٤ libc ΥСˤѤ뤳ȤդɬפǤ)
.in +4n
.nf
.sp
/* Values for ut_type field, below */

#define EMPTY         0 /* Record does not contain valid info
                           (formerly known as UT_UNKNOWN on Linux) */
#define RUN_LVL       1 /* Change in system run-level (see
                           \fBinit\fP(8)) */
#define BOOT_TIME     2 /* Time of system boot (in \fIut_tv\fP) */
#define NEW_TIME      3 /* Time after system clock change
                           (in \fIut_tv\fP) */
#define OLD_TIME      4 /* Time before system clock change
                           (in \fIut_tv\fP) */
#define INIT_PROCESS  5 /* Process spawned by \fBinit\fP(8) */
#define LOGIN_PROCESS 6 /* Session leader process for user login */
#define USER_PROCESS  7 /* Normal process */
#define DEAD_PROCESS  8 /* Terminated process */
#define ACCOUNTING    9 /* Not implemented */

#define UT_LINESIZE      32
#define UT_NAMESIZE      32
#define UT_HOSTSIZE     256

struct exit_status {              /* Type for ut_exit, below */
    short int e_termination;      /* Process termination status */
    short int e_exit;             /* Process exit status */
};

struct utmp {
    short   ut_type;              /* Type of record */
    pid_t   ut_pid;               /* PID of login process */
    char    ut_line[UT_LINESIZE]; /* Device name of tty \- "/dev/" */
    char    ut_id[4];             /* Terminal name suffix,
                                     or inittab(5) ID */
    char    ut_user[UT_NAMESIZE]; /* Username */
    char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or
                                     kernel version for run-level
                                     messages */
    struct  exit_status ut_exit;  /* Exit status of a process
                                     marked as DEAD_PROCESS; not
                                     used by Linux init(8) */
    /* ut_session  ut_tv եɤϡ32ӥåȤǥѥ뤵줿
       64ӥåȤǥѥ뤵줿ƱǤʤФʤʤ
       뤳Ȥǡ32ӥåȤ64ӥåȤΥץꥱǡ
       ǡեȶͭͭ뤳ȤǤ褦ˤʤ롣 */

#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
    int32_t ut_session;           /* Session ID (\fBgetsid\fP(2)),
                                     used for windowing */
    struct {
        int32_t tv_sec;           /* Seconds */
        int32_t tv_usec;          /* Microseconds */
    } ut_tv;                      /* Time entry was made */
#else
     long   ut_session;           /* Session ID */
     struct timeval ut_tv;        /* Time entry was made */
#endif

    int32_t ut_addr_v6[4];        /* Internet address of remote
                                     host; IPv4 address uses
                                     just ut_addr_v6[0] */
    char __unused[20];            /* Reserved for future use */
};

/* Backwards compatibility hacks */
#define ut_name ut_user
#ifndef _NO_UT_TIME
#define ut_time ut_tv.tv_sec
#endif
#define ut_xtime ut_tv.tv_sec
#define ut_addr ut_addr_v6[0]
.sp
.fi
.in
ι¤Τ桼λȤäƤüΥڥե̾
桼Υ̾
.RB ( time (2)
Ǥ)郎狼롣ʸեɤϡ
եɤĹʸûˤϡ\fB\(aq\e0\(aq\fP ˤäƽü롣
.PP
ǽΥȥ
.BR init (8)
ޥɤ
.BR inittab (5)
뤳ȤǺ롣
륨ȥˡ
.BR init (8)
 \fIut_type\fP  \fBDEAD_PROCESS\fP ˽롣
쥳ɤ
\fIut_type\fP  \fBDEAD_PROCESS\fP  \fBRUN_LVL\fP ΤǤʤ
 PID  \fIut_pid\fP Ǥץʤϡ\fIut_user\fP,
\fIut_host\fP, \fIut_time\fP ̥ХȤǥꥢƽԤ
ɬפ \fIut_id\fP ĶΥ쥳ɤ򸫤Ĥʤä硢
.BR init (8)
Ͽ쥳ɤ롣inittab  \fIut_id\fP ꤷ
\fIut_pid\fP  \fIut_time\fP 򸽺ͤˡ
\fIut_type\fP  \fBINIT_PROCESS\fP ꤹ롣
.PP
.BR mingetty (8)
.BR agetty (8))
 pid ǥȥꤷ
\fIut_type\fP  \fBLOGIN_PROCESS\fP ѹ
\fIut_time\fP 򹹿\fIut_line\fPꤷ塢³ΩΤԤġ
.BR login (1)
ϥ桼ǧڤλȡ
\fIut_type\fP  \fBUSER_PROCESS\fP ѹ
\fIut_time\fP 򹹿\fIut_host\fP  \fIut_addr\fPꤹ롣
.BR mingetty (8)
.BR agetty (8))

.BR login (1)
ˤۤʤ뤬
\fIut_pid\fP 
\fIut_line\fP Ȥäƥ쥳ɤ꤬Ԥ뤳Ȥ⤢
(\fIut_pid\fP Ȥ˾ޤ) 
.PP
.BR init (8)
ϥץνλ򸡽Ф硢
\fIut_pid\fP 򥭡Ȥ utmp Υȥꤷ
\fIut_type\fP  \fBDEAD_PROCESS\fP ꤷ
\fIut_user\fP, \fIut_host\fP, \fIut_time\fP ̥ХȤǥꥢ롣
.PP
.BR xterm (1)
ޥɤ¾üߥ졼
ľ \fBUSER_PROCESS\fP Υ쥳ɤꡢ
ü̾Υեåʸ (\fI/dev/[pt]ty\fP ³ʸ)
Ȥä \fIut_id\fP ͤ롣
 id ĥȥ꤬ \fBDEAD_PROCESS\fP ǤäˤϺѤ
ʳξˤϿȥ꤬롣
ǽʾˤϥץλ \fBDEAD_PROCESS\fP ꤷ
 \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, \fIut_host\fP
̥ХȤǥꥢ뤳Ȥ夵Ƥ롣
.PP
.BR telnetd (8)
 \fBLOGIN_PROCESS\fP ꤹǤ褯
Ĥν̤̾
.BR login (1)
ǤФ褤
telnet Υå󤬽λ塢ҤΤ褦
.BR telnetd (8)
 utmp Υȥ롣
.PP
\fIwtmp\fP եˤϡ٤ƤΥȥȤϿ롣
ΥեޥåȤϡȺѤüǥ桼̥̾Ȥʤ뤳Ȱʳ
\fIutmp\fP ȤޤäƱǤ롣
桼̾ \fBshutdown\fP ⤷ \fBreboot\fP Ǥ
ü̾ \fB~\fP ϥƥ (shutdown) ޤϺƵư (reboot)
̣롣ޤü̾ \fB|\fP  \fB}\fP Ф
.BR date (1)
ޥɤѹΥƥϿƤ롣
\fIwtmp\fP ե
.BR login (1),
.BR init (8)
䤤ĤΥС
.BR getty (8)
.RB ( mingetty (8)
ޤ
.BR agetty (8))
ˤƤ롣
ΥץϤɤե򿷤˺ʤΤǡ
ե뤳ȤǾεϿ (record-keeping) ߤ뤳ȤǤ롣
.SH ե
/var/run/utmp
.br
/var/log/wtmp
.SH 
.PP
POSIX.1 Ǥϡ
.I utmp
¤ΤǤϤʤ
.I utmpx
¤ΤꤷƤ롣
.I utmpx
¤ΤǵꤵƤΤϡե
.IR ut_type ,
.IR ut_pid ,
.IR ut_line ,
.IR ut_id ,
.IR ut_user ,
.IR ut_tv
Ǥ롣
POSIX.1 Ǥϡե
.I ut_line

.I ut_user
ĹϵꤵƤʤ

Linux Ǥϡ
.I utmpx
¤Τ
.I utmp
¤ΤƱǤ롣
.SS ΥƥȤ
Linux Ǥ utmp Υȥ v7/BSD  System V Τˤ򤷤Ƥ餺
ξߤΤǤ롣

v7/BSD ǤϤ꾯ιܤʤ;
äȤפʤȤϡ\fIut_type\fP ̵ȤǤ롣
Τ v7/BSD ϤΥץǤ (Ȥ) ֤Υȥ
֤ΥȥޤɽƤޤȤˤʤä
˥åѤΥåȤƤ뤿ե뤬ʤ
BSD ե뤬Τ \fIut_id\fP ʤǤ롣

Linux (System V )ǤϡեɬפȤ
åѤΥåȤƤΤǡö
Ƥޤȥ쥳ɤ \fIut_id\fP Ϸ褷ѹʤ
\fIut_id\fP 򥯥ꥢȶ֤ˤꡢ
utmp ΥȥꡢŪʥƥۡˤʤǽ롣
ҤΥեɤ NULL ХȤƥꥢƤΤϡ
System V ǤμǤɬפȤϤƤʤ
BSD ǤμȤƤơ utmp 򹹿ʤ¿Υץब
ư褦ˤ뤿Ǥ롣
Linux ǤϤޤǵҤƤ褦ˡƤɽ BSD δ˽äƤ롣
.PP
.\" mtk: What is the referrent of "them" in the following sentence?
.\" System V Ǥ ut_type ܰˤꡢȤ \fB"new time"\fP Τ褦
.\" ΥåϿ뤿Τߤ˻ȤäƤ롣
\fBUT_UNKNOWN\fP  Linux Ǻ줿ΤΤ褦Ǥ롣
System V ˤ \fIut_host\fP  \fIut_addr_v6\fP ¸ߤʤ
.SH 
.PP
ե뤳Ȥ utmp ؤεϿߤ
¾͡ʥƥȤϰ㤤Linux Ǥ utmp եɬ
ɬפ롣
.BR who (1)
ޥɤǽʤ褦ˤˤϡ
utmp ե桼Фɤ߼Ĥꤷʤ褦ˤ롣
.PP
եΥեޥåȤϥޥ˰¸Τǡե뤬줿
ޥ⤷Ʊ쥢ƥΥޥǤΤ߽뤳Ȥ侩롣
.PP
դ٤ȤƤϡ
\fIbiarch\fP ʥץåȥեࡢĤޤ 32ӥåȤ 64ӥåȤξ
ץꥱ¹ԤǤ륷ƥ (x86-64, ppc64, s390x ʤ) Ǥϡ
\fIut_tv\fP Υ 32ӥåȥ⡼ɤ 64ӥåȥ⡼ɤƱǤ롣
\fIut_session\fP  \fIut_time\fP ⡢¸ߤˤƱͤƱ
Ǥ롣ˤꡢ32ӥåȥץꥱ 64ӥåȥץꥱ
δ֤ǥǡեȶͭͭ뤳Ȥǽˤʤ롣
Τˤϡ
.I ut_session

.I int32_t
ˡ
.I ut_tv
.I int32_t
Υե
.IR tv_sec ,
.I tv_usec
ŤΤѹФ褤
\fIut_tv\fP  \fIstruct timeval\fP ƱȤϸ¤ʤΤǡ
.in +4n
.nf
.sp
gettimeofday((struct timeval *) &ut.ut_tv, NULL);
.fi
.in

Τ褦ʸƤӽФ򤹤ΤǤϤʤ
ʲΤ褦˳ƥեɤꤹˡ侩:
.in +4n
.nf
.sp
struct utmp ut;
struct timeval tv;

gettimeofday(&tv, NULL);
ut.ut_tv.tv_sec = tv.tv_sec;
ut.ut_tv.tv_usec = tv.tv_usec;
.fi
.in
.PP
utmp ¤Τ libc5  libc6 ѹ줿ΤΤ libc5 ι¤
Ȥäץ
.IR /var/run/utmp "  " /var/log/wtmp
եƤޤ
.SH Х
 man ڡ libc5 ˴ŤƺƤơ
ǿΤΤǤϰäƤ뤫⤷ʤ
.SH Ϣ
.BR ac (1),
.BR date (1),
.BR last (1),
.BR login (1),
.BR who (1),
.BR getutent (3),
.BR getutmp (3),
.BR login (3),
.BR logout (3),
.BR logwtmp (3),
.BR updwtmp (3),
.BR init (8)