|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)rwhod.8c 6.2 (Berkeley) 5/24/86
6: .\"
7: .TH RWHOD 8C "May 24, 1986"
8: .UC 5
9: .SH NAME
10: rwhod \- system status server
11: .SH SYNOPSIS
12: .B /etc/rwhod
13: .SH DESCRIPTION
14: .I Rwhod
15: is the server which maintains the database used by the
16: .IR rwho (1C)
17: and
18: .IR ruptime (1C)
19: programs. Its operation is predicated on the ability to
20: .I broadcast
21: messages on a network.
22: .PP
23: .I Rwhod
24: operates as both a producer and consumer of status information.
25: As a producer of information it periodically
26: queries the state of the system and constructs
27: status messages which are broadcast on a network.
28: As a consumer of information, it listens for other
29: .I rwhod
30: servers' status messages, validating them, then recording
31: them in a collection of files located in the directory
32: .IR /usr/spool/rwho .
33: .PP
34: The server transmits and receives messages at the port indicated
35: in the ``rwho'' service specification; see
36: .IR services (5).
37: The messages sent and received, are of the form:
38: .PP
39: .nf
40: .ta 0.5i 1.0i 1.5i
41: struct outmp {
42: char out_line[8]; /* tty name */
43: char out_name[8]; /* user id */
44: long out_time; /* time on */
45: };
46: .sp
47: struct whod {
48: char wd_vers;
49: char wd_type;
50: char wd_fill[2];
51: int wd_sendtime;
52: int wd_recvtime;
53: char wd_hostname[32];
54: int wd_loadav[3];
55: int wd_boottime;
56: struct whoent {
57: struct outmp we_utmp;
58: int we_idle;
59: } wd_we[1024 / sizeof (struct whoent)];
60: };
61: .fi
62: .PP
63: All fields are converted to network byte order prior to
64: transmission. The load averages are as calculated by the
65: .IR w (1)
66: program, and represent load averages over the 5, 10, and 15 minute
67: intervals prior to a server's transmission; they are multiplied by 100
68: for representation in an integer. The host name
69: included is that returned by the
70: .IR gethostname (2)
71: system call, with any trailing domain name omitted.
72: The array at the end of the message contains information about
73: the users logged in to the sending machine. This information
74: includes the contents of the
75: .IR utmp (5)
76: entry for each non-idle terminal line and a value indicating the
77: time in seconds since a character was last received on the terminal line.
78: .PP
79: Messages received by the
80: .I rwho
81: server are discarded unless they originated at an
82: .I rwho
83: server's port. In addition, if the host's name, as specified
84: in the message, contains any unprintable ASCII characters, the
85: message is discarded. Valid messages received by
86: .I rwhod
87: are placed in files named
88: .IR whod . hostname
89: in the directory
90: .IR /usr/spool/rwho .
91: These files contain only the most recent message, in the
92: format described above.
93: .PP
94: Status messages are generated approximately once every
95: 3 minutes.
96: .I Rwhod
97: performs an
98: .IR nlist (3)
99: on /vmunix every 30 minutes to guard against
100: the possibility that this file is not the system
101: image currently operating.
102: .SH "SEE ALSO"
103: rwho(1C),
104: ruptime(1C)
105: .SH BUGS
106: There should be a way to relay status information between networks.
107: Status information should be sent only upon request rather than continuously.
108: People often interpret the server dying
109: or network communtication failures
110: as a machine going down.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.