file contains the list of servers that inetd(1M) invokes when it receives an Internet request over a socket. Each server entry is composed of a single line of the
service-name endpoint-type protocol wait-status uid server-program \
Fields are separated by either SPACE or TAB characters. A `#' (number sign) indicates the beginning of a comment; characters up to the end of the line are not interpreted by routines that search this file.
- The name of a valid service listed in the services file. For RPC services, the value of the service-name field consists of the RPC service name or program number, followed by a '/' (slash) and either a version number or a range of version numbers, for example, rstatd/2-4.
- Can be one of:
- for a stream socket
- for a datagram socket
- for a raw socket
- for a sequenced packet socket
- for all TLI endpoints
- A recognized protocol listed in the file /etc/inet/protocols. For servers capable of supporting TCP and UDP over IPv6, the following protocol types are also
tcp6 and udp6 are not official protocols; accordingly, they are not listed in the /etc/inet/protocols file.
Here the inetd program uses an AF_INET6 type socket endpoint. These servers can also handle incoming IPv4 client requests in addition to IPv6 client requests.
For RPC services, the field consists of the string rpc followed by a '/' (slash) and either a '*' (asterisk), one or more nettypes, one or more netids, or a combination of nettypes and netids. Whatever the value, it is first treated as a nettype.
If it is not a valid nettype, then it is treated as a netid. For example, rpc/* for an RPC service using all the transports supported by the system (the list can be found in the /etc/netconfig file), equivalent to saying rpc/visible
rpc/ticots for an RPC service using the Connection-Oriented Transport Service.
- This field has values wait or nowait. This entry specifies whether the server that is invoked by inetd will take over the listening socket associated with the service,
and whether once launched, inetd will wait for that server to exit, if ever, before it resumes listening for new service requests. The wait-status for datagram servers must be set to wait, as they are always
invoked with the orginal datagram socket that will participate in delivering the service bound to the specified service. They do not have separate "listening" and "accepting" sockets. Accordingly, do not configure UDP services as nowait. This causes a race condition
by which the inetd program selects on the socket and the server program reads from the socket. Many server programs will be forked, and performance will be severely compromised. Connection-oriented services such as TCP stream services can be designed to
be either wait or nowait status.
- The user ID under which the server should run. This allows servers to run with access privileges other than those for root.
- Either the pathname of a server program to be invoked by inetd to perform the requested service, or the value internal if inetd itself provides the service.
- If a server must be invoked with command line arguments, the entire command line (including argument 0) must appear in this field (which consists of all remaining words in the entry). If the server expects inetd to pass it the address of its peer, for compatibility with 4.2BSD executable daemons, then the first argument to the command should be specified as %A. No more than 20 arguments are allowed in this field. The %A argument is implemented only for services
whose wait-status value is wait.