.\" $Revision: 1.5 $ .\" .TH rwhod++ 8 "05 Feb 1996" .SH NAME rwhod++ \- a new rwho daemon .SH SYNOPSIS .B rwhod++ [ .B \-d ] [ .BI \-t \ seconds ] [ .BI \-r \ num ] [ .BI \-a \ num ] .if n .ti +0.5i .I netgroup | .I filename \&.\|.\|. .SH DESCRIPTION .I rwhod++ is a compatible replacement for the classic .I rwhod program. In contrast to .IR rwhod , which is based on broadcasting, .I rwhod++ polls a list of hosts via RPC and therefore consumes significantly less network bandwidth. As .I rwhod++ actively contacts the specified hosts, the hosts are not limited to the local network. The client programs .RI ( rwhod and .IR ruptime ) need not be replaced when the new daemon is used, because the spool files generated by .I rwhod++ are identical to those written by the standard .IR rwhod . .LP .I rwhod++ is usually run on a single host in the local network. The spool directory .B /usr/spool/rwho on this host can then be exported via NFS to any number of machines. However, to avoid byte-order problems and to reduce NFS traffic, it may be a good idea to periodically cache the .IR rwho -output and .IR ruptime -output on the system running .IR rwhod++ , and then on all client machines replace .I rwho and .I ruptime by trivial shell scripts that just .IR cat (1) the cache files. .LP On startup, .I rwhod++ reads its arguments to build a list of hosts to contact. Each argument is either the name of a NIS netgroup or a filename. Arguments that begin with a slash character (`/') are considered filenames; each file holds one hostname per line (filenames must be absolute pathnames so that the files can be reopened once .I rwhod++ has changed the current directory to .BR /usr/spool/rwho ). The final list of hosts is then randomized to eliminate effects caused by netgroups with their host entries sorted by subnets. .LP .I rwhod++ cycles through the list of hosts built on startup, sending one .I rstat and one .I rusers RPC request to each host during each round. In the first pass, the hostnames are resolved and the portmapper on each host is contacted to obtain the port numbers for the RPC calls. .I rwhod++ collects the RPC replies asynchronously to avoid blocking on hosts that are not responding. .LP If no positive reply is received from a host after a certain number of requests, the host is .IR reset . This causes the hostname to be resolved again and the remote portmapper to be (re-)contacted during the next round to take care of hosts that were rebooted or whose IP addresses have changed since .I rwhod++ was started. .SH OPTIONS .TP .BR \-t \ seconds This option specifies the time for one cycle through the list of hosts contacted by .IR rwhod++ . The default is the number of hosts in seconds. .TP .BR \-r \ num .I num specifies the number of unanswered requests after which the unresponsive host is reset. A separate count is maintained for each type of RPC request sent to each host. The default value for this option is chosen such that a host is reset 15 minutes after the last successful transaction. .TP .BR \-a \ num .I rwhod++ periodically re-reads its arguments (netgroups and/or files) to check if any hosts have been added or removed and, if so, updates its list of hosts. The option .B \-a is used to specify that the arguments should be re-read each .I num cycles through the list of hosts. The default is chosen such that the arguments are re-read once every half hour. .I rwhod++ also re-reads its arguments on receipt of a HUP signal. .TP .B \-d Debug mode. Normally, .I rwhod++ backgrounds itself on startup and uses .I syslog to record error and warning messages. In debug mode, .I rwhod++ stays in the foreground and writes messages to standard error output. .SH EXAMPLES .LP .RS .nf .B "rwhod++ -t 180 rwhohosts /usr/spool/rwho/etc/extra-hosts" .fi .RE .LP This command line causes .I rwhod++ to read hostnames from the netgroup .B rwhohosts and, in addition, from the specified file. Each cycle through the list of hosts will take exactly three minutes. .SH FILES .BR /usr/spool/rwho/whod. * .SH "SEE ALSO" .BR ruptime (1), .BR rwho (1) .SH AUTHOR Oliver Laumann, net@informatik.uni-bremen.de