---
name: "xinetd"
section: "1"
platform: "linux"
package: "xinetd"
version: "2.2.1-8.1"
release: "Debian 2.1 (Slink)"
platforms: ["linux"]
url: "https://new.carta.tech/xinetd"
---

# xinetd(1)

the extended Internet services daemon

## NAME

xinetd - the extended Internet services daemon

## SYNOPSIS

**xinetd** \[*options*\]

## DESCRIPTION

**xinetd** performs the same function as **inetd**: it starts programs that provide Internet services.  Instead of having such servers started at system initialization time, and be dormant until a connection request arrives, **xinetd** is the only daemon process started and it listens on all service ports for the services listed in its configuration file. When a request comes in, **xinetd** starts the appropriate server.  Because of the way it operates, **xinetd** (as well as **inetd**) is also referred to as a super-server.

The services listed in **xinetd**'s configuration file can be separated into two groups.  Services in the first group are called *multi-threaded* and they require the forking of a new server process for each new connection request.  The new server then handles that connection.  For such services, **xinetd** keeps listening for new requests so that it can spawn new servers.  On the other hand, the second group includes services for which the service daemon is responsible for handling all new connection requests.  Such services are called *single-threaded* and **xinetd** will stop handling new requests for them until the server dies.  Services in this group are usually datagram-based.

So far, the only reason for the existence of a super-server was to conserve system resources by avoiding to fork a lot of processes which might be dormant for most of their lifetime.  While fulfilling this function, **xinetd** takes advantage of the idea of a super-server to provide features such as access control and logging.  Furthermore, **xinetd** is not limited to services listed in */etc/services.* Therefore, anybody can use **xinetd** to start special-purpose servers.

## OPTIONS

- **-d**

  Enables debug mode. This produces a lot of debugging output, and it makes it possible to use a debugger on **xinetd**.

- **-syslog** *syslog\_facility*

  This option enables syslog logging of **xinetd**-produced messages using the specified syslog facility. The following facility names are supported: *daemon,* *auth,* *user,* *local\[0-7\]* (check *[syslog.conf(5)](/syslog.conf/5.md)* for their meanings). This option is ineffective in debug mode since all relevant messages are sent to the terminal.

- **-filelog** *logfile*

  **xinetd**-produced messages will be placed in the specified file. Messages are always appended to the file. If the file does not exist, it will be created. This option is ineffective in debug mode since all relevant messages are sent to the terminal.

- **-f** *config\_file*

  Determines the file that **xinetd** uses for configuration. The default is */etc/xinetd.conf*.

- **-pid**

  The process ID is written to standard error. This option is ineffective in debug mode.

- **-host** *host*

  With this option **xinetd** will bind all services to a specific IP address given by *host* instead of binding to INADDR\_ANY. This default can be overloaded by the *interface* attribute in *[xinetd.conf(5)](/xinetd.conf/5.md)*.

- **-loop** *rate*

  This option sets the loop rate beyond which a service is considered in error and is deactivated. The loop rate is specified in terms of the number of servers per second that can be forked for a process. The speed of your machine determines the correct value for this option. The default rate is 10.

- **-reuse**

  If this option is used, **xinetd** will set the socket option *SO\_REUSEADDR* before binding the service socket to an Internet address. This allows binding of the address even if there are programs that use it, which happens when a previous instance of **xinetd** has started some servers that are still running. This option has no effect on RPC services.

- **-limit** *proc\_limit*

  This option places a limit on the number of concurrently running processes that can be started by **xinetd.** Its purpose is to prevent process table overflows.

- **-logprocs** *limit*

  This option places a limit on the number of concurrently running servers for remote userid acquisition.

- **-shutdownprocs** *limit*

  This option places a limit on the number of concurrently running servers for service shutdown (forked when the **RECORD** option is used).

- **-cc** *interval*

  This option instructs **xinetd** to perform periodic consistency checks on its internal state every *interval* seconds.

The *syslog* and *filelog* options are mutually exclusive. If none is specified, the default is syslog using the *daemon* facility. You should not confuse **xinetd** messages with messages related to service logging. The latter are logged only if this is specified via the configuration file.

## CONTROLLING XINETD

**xinetd** performs certain actions when it receives certain signals. The actions associated with the specific signals can be redefined by editing *config.h* and recompiling.

- **SIGUSR1**

  causes a soft reconfiguration, which means that **xinetd** rereads the configuration file and adjusts accordingly.

- **SIGUSR2**

  causes a hard reconfiguration, which is the same as a soft reconfiguration except that servers for services that are no longer available are terminated. Access control is performed again on running servers by checking the remote location, access times and server instances. If the number of server instances is lowered, some arbitrarily picked servers will be killed to satisfy the limit; this will happen *after* any servers are terminated because of failing the remote location or access time checks. Also, if the **INTERCEPT** flag was clear and is set, any running servers for that service will be terminated; *the purpose of this is to ensure that after a hard reconfiguration* *there will be no running servers that can accept packets from addresses* *that do not meet the access control criteria*.

- **SIGQUIT**

  causes program termination.

- **SIGTERM**

  terminates all running servers before terminating **xinetd**.

- **SIGHUP**

  causes an internal state dump (the default dump file is */tmp/xinetd.dump*; to change the filename, edit *config.h* and recompile).

- **SIGIOT**

  causes an internal consistency check to verify that the data structures used by the program have not been corrupted. When the check is completed **xinetd** will generate a message that says if the check was successful or not.

On reconfiguration the log files are closed and reopened. This allows removal of old log files.

## FILES

- **/etc/xinetd.conf**

  default configuration file

- **/tmp/xinetd.dump**

  default dump file

## SEE ALSO

*[inetd(8)](/inetd/8.md),*

*[xinetd.conf(5)](/xinetd.conf/5.md),*

*[xinetd.log(5)](/xinetd.log/5.md)*

## AUTHOR

Panos Tsirigotis, CS Dept, University of Colorado, Boulder

## PRONUNCIATION

zy-net-d
