RWHOD(8) UNIX Programmer's Manual RWHOD(8) NAME rwhod - system status server SYNOPSIS /usr/sbin/rwhod DESCRIPTION _R_w_h_o_d is the server which maintains the database used by the _r_w_h_o(1) and _r_u_p_t_i_m_e(1) programs. Its operation is predi- cated on the ability to _b_r_o_a_d_c_a_s_t messages on a network. _R_w_h_o_d operates as both a producer and consumer of status information. As a producer of information it periodically queries the state of the system and constructs status mes- sages which are broadcast on a network. As a consumer of information, it listens for other _r_w_h_o_d servers' status mes- sages, validating them, then recording them in a collection of files located in the directory /_u_s_r/_s_p_o_o_l/_r_w_h_o. The server transmits and receives messages at the port indi- cated in the ``rwho'' service specification; see _s_e_r_- _v_i_c_e_s(5). The messages sent and received, are of the form: struct outmp { char out_line[8];/* tty name */ char out_name[8];/* user id */ long out_time;/* time on */ }; struct whod { char wd_vers; char wd_type; char wd_fill[2]; int wd_sendtime; int wd_recvtime; char wd_hostname[32]; int wd_loadav[3]; int wd_boottime; struct whoent { structoutmp we_utmp; int we_idle; } wd_we[1024 / sizeof (struct whoent)]; }; All fields are converted to network byte order prior to transmission. The load averages are as calculated by the _w(1) program, and represent load averages over the 5, 10, and 15 minute intervals prior to a server's transmission; they are multiplied by 100 for representation in an integer. The host name included is that returned by the _g_e_t_h_o_s_t_- _n_a_m_e(2) system call, with any trailing domain name omitted. The array at the end of the message contains information Printed 11/26/99 November 16, 1996 1 RWHOD(8) UNIX Programmer's Manual RWHOD(8) about the users logged in to the sending machine. This information includes the contents of the _u_t_m_p(5) entry for each non-idle terminal line and a value indicating the time in seconds since a character was last received on the termi- nal line. Messages received by the _r_w_h_o server are discarded unless they originated at an _r_w_h_o server's port. In addition, if the host's name, as specified in the message, contains any unprintable ASCII characters, the message is discarded. Valid messages received by _r_w_h_o_d are placed in files named _w_h_o_d._h_o_s_t_n_a_m_e in the directory /_u_s_r/_s_p_o_o_l/_r_w_h_o. These files contain only the most recent message, in the format described above. Status messages are generated approximately once every 3 minutes. _R_w_h_o_d performs an _n_l_i_s_t(3) on /vmunix every 30 minutes to guard against the possibility that this file is not the system image currently operating. SEE ALSO rwho(1), ruptime(1) BUGS There should be a way to relay status information between networks. Status information should be sent only upon request rather than continuously. People often interpret the server dying or network communtication failures as a machine going down. Printed 11/26/99 November 16, 1996 2