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