]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.sbin/rwhod/rwhod.8
zfs: merge openzfs/zfs@0ee9b0239
[FreeBSD/FreeBSD.git] / usr.sbin / rwhod / rwhod.8
1 .\" Copyright (c) 1983, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)rwhod.8     8.2 (Berkeley) 12/11/93
29 .\"
30 .Dd August 8, 2017
31 .Dt RWHOD 8
32 .Os
33 .Sh NAME
34 .Nm rwhod
35 .Nd system status server
36 .Sh SYNOPSIS
37 .Nm
38 .Op Fl i
39 .Op Fl p
40 .Op Fl l
41 .Op Fl m Op Ar ttl
42 .Sh DESCRIPTION
43 The
44 .Nm
45 utility is the server which maintains the database used by the
46 .Xr rwho 1
47 and
48 .Xr ruptime 1
49 programs.
50 Its operation is predicated on the ability to
51 .Em broadcast
52 or
53 .Em multicast
54 messages on a network.
55 .Pp
56 The
57 .Nm
58 utility operates as both a producer and consumer of status information,
59 unless the
60 .Fl l
61 (listen mode) option is specified, in which case
62 it acts as a consumer only.
63 As a producer of information it periodically
64 queries the state of the system and constructs
65 status messages which are broadcasted or multicasted on a network.
66 As a consumer of information, it listens for other
67 .Nm
68 servers' status messages, validating them, then recording
69 them in a collection of files located in the directory
70 .Pa /var/rwho .
71 .Pp
72 The following options are available:
73 .Bl -tag -width indent
74 .It Fl i
75 Enable insecure mode, which causes
76 .Nm
77 to ignore the source port on incoming packets.
78 .It Fl p
79 Ignore all
80 .Dv POINTOPOINT
81 interfaces.
82 This is useful if you do not wish to keep dial on demand
83 interfaces permanently active.
84 .It Fl l
85 Enable listen mode, which causes
86 .Nm
87 to not broadcast any information.
88 This allows you to monitor other machines'
89 .Nm
90 information, without broadcasting your own.
91 .It Fl m Op Ar ttl
92 Cause
93 .Nm
94 to use IP multicast (instead of
95 broadcast) on all interfaces that have
96 the IFF_MULTICAST flag set in their "ifnet" structs
97 (excluding the loopback interface).
98 The multicast
99 reports are sent with a time-to-live of 1, to prevent
100 forwarding beyond the directly-connected subnet(s).
101 .Pp
102 If the optional
103 .Ar ttl
104 argument is supplied with the
105 .Fl m
106 flag,
107 .Nm
108 will send IP multicast datagrams with a
109 time-to-live of
110 .Ar ttl ,
111 via a SINGLE interface rather
112 than all interfaces.
113 .Ar ttl
114 must be between 0 and
115 32 (or MAX_MULTICAST_SCOPE).
116 Note that
117 .Fl m Ar 1
118 is different from
119 .Fl m ,
120 in that
121 .Fl m Ar 1
122 specifies transmission on one interface only.
123 .Pp
124 When
125 .Fl m
126 is used without a
127 .Ar ttl
128 argument, the program accepts multicast
129 .Nm
130 reports from all multicast-capable interfaces.
131 If a
132 .Ar ttl
133 argument is given, it accepts multicast reports from only one interface, the
134 one on which reports are sent (which may be controlled via the host's routing
135 table).
136 Regardless of the
137 .Fl m
138 option, the program accepts broadcast or
139 unicast reports from all interfaces.
140 Thus, this program will hear the
141 reports of old, non-multicasting
142 .Nm Ns s ,
143 but, if multicasting is used,
144 those old
145 .Nm Ns s
146 will not hear the reports generated by this program.
147 .El
148 .Pp
149 The server transmits and receives messages at the port indicated
150 in the ``who'' service specification; see
151 .Xr services 5 .
152 The messages sent and received, are of the form:
153 .Bd -literal -offset indent
154 struct  outmp {
155         char    out_line[8];            /* tty name */
156         char    out_name[8];            /* user id */
157         long    out_time;               /* time on */
158 };
159
160 struct  whod {
161         char    wd_vers;
162         char    wd_type;
163         char    wd_fill[2];
164         int     wd_sendtime;
165         int     wd_recvtime;
166         char    wd_hostname[32];
167         int     wd_loadav[3];
168         int     wd_boottime;
169         struct  whoent {
170                 struct  outmp we_utmp;
171                 int     we_idle;
172         } wd_we[1024 / sizeof (struct whoent)];
173 };
174 .Ed
175 .Pp
176 All fields are converted to network byte order prior to
177 transmission.
178 The load averages are as calculated by the
179 .Xr w 1
180 program, and represent load averages over the 5, 10, and 15 minute
181 intervals prior to a server's transmission; they are multiplied by 100
182 for representation in an integer.
183 The host name
184 included is that returned by the
185 .Xr gethostname 3
186 system call, with any trailing domain name omitted.
187 The array at the end of the message contains information about
188 the users logged in to the sending machine.
189 This information
190 includes the contents of the entry from the user accounting database
191 for each non-idle terminal line and a value indicating the
192 time in seconds since a character was last received on the terminal line.
193 .Pp
194 Messages received by the
195 .Nm rwho
196 server are discarded unless they originated at an
197 .Nm rwho
198 server's port or the
199 .Fl i
200 option was specified.
201 In addition, if the host's name, as specified
202 in the message, contains any unprintable
203 .Tn ASCII
204 characters, the
205 message is discarded.
206 Valid messages received by
207 .Nm
208 are placed in files named
209 .Pa whod.hostname
210 in the directory
211 .Pa /var/rwho .
212 These files contain only the most recent message, in the
213 format described above.
214 .Pp
215 Status messages are generated approximately once every
216 3 minutes.
217 .Sh SEE ALSO
218 .Xr ruptime 1 ,
219 .Xr rwho 1
220 .Sh HISTORY
221 The
222 .Nm
223 utility appeared in
224 .Bx 4.2 .
225 .Sh BUGS
226 Status information should be sent only upon request rather than continuously.
227 People often interpret the server dying
228 or network communication failures
229 as a machine going down.