version 4, including all changes.
.
| Rev |
Author |
# |
Line |
| 1 |
perry |
1 |
---- |
| |
|
2 |
__NAME__ |
| |
|
3 |
|
| |
|
4 |
|
| |
|
5 |
inetd - internet ``super-server'' |
| |
|
6 |
__SYNOPSIS__ |
| |
|
7 |
|
| |
|
8 |
|
| |
|
9 |
inetd [[-d] [[-q queuelength] [[configuration |
| |
|
10 |
file] |
| |
|
11 |
__DESCRIPTION__ |
| |
|
12 |
|
| |
|
13 |
|
| |
|
14 |
Inetd should be run at boot time by |
| |
|
15 |
/etc/init.d/inetd (or /etc/rc.local on some |
| |
|
16 |
systems). It then listens for connec- tions on certain |
| |
|
17 |
internet sockets. When a connection is found on one of its |
| |
|
18 |
sockets, it decides what service the socket corresponds to, |
| |
|
19 |
and invokes a program to service the request. After the |
| |
|
20 |
program is finished, it continues to listen on the socket |
| |
|
21 |
(except in some cases which will be described below). |
| |
|
22 |
Essentially, inetd allows running one daemon to invoke |
| |
|
23 |
several others, reducing load on the sys- tem. |
| |
|
24 |
|
| |
|
25 |
|
| |
|
26 |
The options available for inetd: |
| |
|
27 |
-d Turns on debugging. |
| |
|
28 |
|
| |
|
29 |
|
| |
|
30 |
-q queuelengthSets the size of the socket listen queue to the spec-ified value. Default is 128.Upon execution, inetd reads its configuration informationfrom a configuration 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 sepa- rated 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: |
| |
|
31 |
|
| |
|
32 |
|
| |
|
33 |
service name |
| |
|
34 |
socket type |
| |
|
35 |
protocol |
| |
|
36 |
wait/nowait[[.max] |
| |
|
37 |
user[[.group] |
| |
|
38 |
server program |
| |
|
39 |
server program arguments |
| |
|
40 |
|
| |
|
41 |
|
| |
|
42 |
To specify an ''Sun-RPC'' based service, the entry would |
| |
|
43 |
contain these fields. |
| |
|
44 |
|
| |
|
45 |
|
| |
|
46 |
service name/version |
| |
|
47 |
socket type |
| |
|
48 |
rpc/protocol |
| |
|
49 |
wait/nowait[[.max] |
| |
|
50 |
user[[.group] |
| |
|
51 |
server program |
| |
|
52 |
server program arguments |
| |
|
53 |
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''. |
| |
|
54 |
|
| |
|
55 |
|
| |
|
56 |
The ''socket-type'' should be one of ``stream'', |
| |
|
57 |
``dgram'', ``raw'', ``rdm'', or ``seqpacket'', depending on |
| |
|
58 |
whether the socket is a stream, datagram, raw, reliably |
| |
|
59 |
delivered mes- sage, or sequenced packet |
| |
|
60 |
socket. |
| |
|
61 |
|
| |
|
62 |
|
| |
|
63 |
The ''protocol'' must be a valid protocol as given in |
| |
|
64 |
/etc/protocols. Examples might be ``tcp'' or |
| |
|
65 |
``udp''. Rpc based services are specified with the |
| |
|
66 |
``rpc/tcp'' or ``rpc/udp'' service type. |
| |
|
67 |
|
| |
|
68 |
|
| |
|
69 |
The ''wait/nowait'' entry is applicable to datagram |
| |
|
70 |
sockets only (other sockets should have a ``nowait'' entry |
| |
|
71 |
in this space). If a datagram server connects to its peer, |
| |
|
72 |
freeing the socket so inetd can received further messages on |
| |
|
73 |
the socket, it is said to be a ``multi-threaded'' server, |
| |
|
74 |
and should use the ``nowait'' entry. For datagram servers |
| |
|
75 |
which process all incoming datagrams on a socket and |
| |
|
76 |
eventually time out, the server is said to be |
| |
|
77 |
``single-threaded'' and should use a ``wait'' entry. |
| 3 |
AristotlePagaltzis |
78 |
comsat(8) (biff(1)) and talkd(8) |
| 1 |
perry |
79 |
are both examples of the latter type of datagram server. |
| 4 |
AristotlePagaltzis |
80 |
tftpd(8) is an exception; it is a datagram server |
| 1 |
perry |
81 |
that establishes pseudo-connections. It must be listed as |
| |
|
82 |
``wait'' in order to avoid a race; the server reads the |
| |
|
83 |
first packet, creates a new socket, and then forks and exits |
| |
|
84 |
to allow inetd to check for new service requests to spawn |
| |
|
85 |
new servers. The optional ``max'' suffix (separated from |
| |
|
86 |
``wait'' or ``nowait'' by a dot) specifies the maximum num- |
| |
|
87 |
ber of server instances that may be spawned from inetd |
| |
|
88 |
within an interval of 60 seconds. When omitted, ``max'' |
| |
|
89 |
defaults to 40. |
| |
|
90 |
|
| |
|
91 |
|
| |
|
92 |
The ''user'' entry should contain the user name of the |
| |
|
93 |
user as whom the server should run. This allows for servers |
| |
|
94 |
to be given less permission than root. An optional group |
| |
|
95 |
name can be specified by appending a dot to the user name |
| |
|
96 |
followed by the group name. This allows for servers to run |
| |
|
97 |
with a dif- ferent (primary) group id than specified in the |
| |
|
98 |
password file. If a group is specified and user is not root, |
| |
|
99 |
the sup- plementary groups associated with that user will |
| |
|
100 |
still be set. |
| |
|
101 |
|
| |
|
102 |
|
| |
|
103 |
The ''server-program'' entry should contain the pathname |
| |
|
104 |
of the program which is to be executed by inetd when a |
| |
|
105 |
request is found on its socket. If inetd provides this |
| |
|
106 |
service inter- nally, this entry should be |
| |
|
107 |
``internal''. |
| |
|
108 |
|
| |
|
109 |
|
| |
|
110 |
The ''server program arguments'' should be just as |
| |
|
111 |
arguments normally are, starting with argv[[0], which is the |
| |
|
112 |
name of the program. If the service is provided internally, |
| |
|
113 |
the word ``internal'' should take the place of this |
| |
|
114 |
entry. |
| |
|
115 |
|
| |
|
116 |
|
| |
|
117 |
Inetd provides several ``trivial'' services internally by |
| |
|
118 |
use of routines within itself. These services are ``echo'', |
| |
|
119 |
``discard'', ``chargen'' (character generator), ``daytime'' |
| |
|
120 |
(human readable time), and ``time'' (machine readable time, |
| |
|
121 |
in the form of the number of seconds since midnight, January |
| |
|
122 |
1, 1900). All of these services are tcp based. For details |
| |
|
123 |
of these services, consult the appropriate |
| |
|
124 |
RFC from the Net- work Information |
| |
|
125 |
Center. |
| |
|
126 |
|
| |
|
127 |
|
| |
|
128 |
Inetd rereads its configuration file when it receives a |
| |
|
129 |
hangup signal, SIGHUP. Services may be added, |
| |
|
130 |
deleted or modified when the configuration file is reread. |
| |
|
131 |
Inetd cre- ates a file ''/var/run/inetd.pid'' that |
| |
|
132 |
contains its process identifier. |
| |
|
133 |
__SEE ALSO__ |
| |
|
134 |
|
| |
|
135 |
|
| |
|
136 |
comsat(8), fingerd(8), ftpd(8), |
| |
|
137 |
rexecd(8), rlogind(8), rshd(8), |
| |
|
138 |
telnetd(8), tftpd(8) |
| |
|
139 |
__HISTORY__ |
| |
|
140 |
|
| |
|
141 |
|
| |
|
142 |
The inetd command appeared in 4.3 BSD . |
| |
|
143 |
Support for ''Sun-RPC'' based services is modelled after |
| |
|
144 |
that provided by ''SunOS 4.1''. |
| |
|
145 |
|
| |
|
146 |
|
| 2 |
perry |
147 |
Linux !NetKit 0.09 November 23, 1996 1 |
| 1 |
perry |
148 |
---- |