Section 8: inetd



This page was been converted automatically, from Debian GNU/Linux man pages.


INETD(8)                    System Manager's Manual                   INETD(8)

NAME

inetd - internet ``super-server''

SYNOPSIS

inetd [-d] [-q queuelength] [configuration file]

DESCRIPTION

Inetd should be run at boot time by /etc/init.d/netbase (or /etc/rc.local on some systems). It then listens for connections on certain internet sockets. When a connection is found on one of its sockets, it decides what service the socket corresponds to, and invokes a program to service the request. After the program is finished, it continues to listen on the socket (except in some cases which will be described below). Essen- tially, inetd allows running one daemon to invoke several others, reduc- ing load on the system. The options available for inetd: -d Turns on debugging. -q queuelength Sets the size of the socket listen queue to the specified value. Default is 128. Upon execution, inetd reads its configuration information from a configu- ration file which, by default, is /etc/inetd.conf. There must be an entry for each field of the configuration file, with entries for each field separated by a tab or a space. Comments are denoted by a ``#'' at the beginning of a line. There must be an entry for each field. The fields of the configuration file are as follows: service name socket type protocol wait/nowait[.max] user[.group] server program server program arguments To specify an Sun-RPC based service, the entry would contain these fields. service name/version socket type rpc/protocol wait/nowait[.max] user[.group] server program server program arguments The service-name entry is the name of a valid service in the file /etc/services. For ``internal'' services (discussed below), the service name must be the official name of the service (that is, the first entry in /etc/services). When used to specify a Sun-RPC based service, this field is a valid RPC service name in the file /etc/rpc. The part on the right of the ``/'' is the RPC version number. This can simply be a single numeric argument or a range of versions. A range is bounded by the low version to the high version - ``rusers/1-3''. The socket-type should be one of ``stream'', ``dgram'', ``raw'', ``rdm'', or ``seqpacket'', depending on whether the socket is a stream, datagram, raw, reliably delivered message, or sequenced packet socket. The protocol must be a valid protocol as given in /etc/protocols. Exam- ples might be ``tcp'' or ``udp''. Rpc based services are specified with the ``rpc/tcp'' or ``rpc/udp'' service type. The wait/nowait entry is applicable to datagram sockets only (other sock- ets should have a ``nowait'' entry in this space). If a datagram server connects to its peer, freeing the socket so inetd can received further messages on the socket, it is said to be a ``multi-threaded'' server, and should use the ``nowait'' entry. For datagram servers which process all incoming datagrams on a socket and eventually time out, the server is said to be ``single-threaded'' and should use a ``wait'' entry. Com- sat(8) (biff(1)) and talkd(8) are both examples of the latter type of datagram server. Tftpd(8) is an exception; it is a datagram server that establishes pseudo-connections. It must be listed as ``wait'' in order to avoid a race; the server reads the first packet, creates a new socket, and then forks and exits to allow inetd to check for new service requests to spawn new servers. The optional ``max'' suffix (separated from ``wait'' or ``nowait'' by a dot) specifies the maximum number of server instances that may be spawned from inetd within an interval of 60 sec- onds. When omitted, ``max'' defaults to 40. The user entry should contain the user name of the user as whom the serv- er should run. This allows for servers to be given less permission than root. An optional group name can be specified by appending a dot to the user name followed by the group name. This allows for servers to run with a different (primary) group id than specified in the password file. If a group is specified and user is not root, the supplementary groups associ- ated with that user will still be set. The server-program entry should contain the pathname of the program which is to be executed by inetd when a request is found on its socket. If inetd provides this service internally, this entry should be ``internal''. The server program arguments should be just as arguments normally are, starting with argv[0], which is the name of the program. If the service is provided internally, the word ``internal'' should take the place of this entry. Inetd provides several ``trivial'' services internally by use of routines within itself. These services are ``echo'', ``discard'', ``chargen'' (character generator), ``daytime'' (human readable time), and ``time'' (machine readable time, in the form of the number of seconds since mid- night, January 1, 1900). All of these services are tcp based. For de- tails of these services, consult the appropriate RFC from the Network In- formation Center. Inetd rereads its configuration file when it receives a hangup signal, SIGHUP. Services may be added, deleted or modified when the configuration file is reread. Inetd creates a file /var/run/inetd.pid that contains its process identifier. SEE ALSO comsat(8), fingerd(8), ftpd(8), rexecd(8), rlogind(8), rshd(8), telnetd(8), tftpd(8)

HISTORY

The inetd command appeared in 4.3BSD. Support for Sun-RPC based services is modelled after that provided by SunOS 4.1. Linux NetKit 0.09 November 23, 1996 2