---
name: "inets"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/inets"
---

# inets(3erl)

The Inets services API.

## NAME

inets - The Inets services API.

## DESCRIPTION

This module provides the most basic API to the clients and servers that are part of the *Inets* application, such as start and stop.

## DATA TYPES

Type definitions that are used more than once in this module:

*service() = httpc \| httpd*

*property() = atom()*

## EXPORTS

**services() -\> \[{Service, Pid}\]**\

Types:

Service = service()\
 Pid = pid()\

Returns a list of currently running services.

**Note:**

Services started as *stand\_alone* are not listed.

**services\_info() -\> \[{Service, Pid, Info}\]**\

Types:

Service = service()\
 Pid = pid()\
 Info = \[{Option, Value}\] \| Reason\
 Option = property()\
 Value = term()\

Returns a list of currently running services where each service is described by an *\[{Option, Value}\]* list. The information in the list is specific for each service and each service has probably its own info function that gives more details about the service. If specific service info returns {error, Reason}, Info will contain Reason term.

**service\_names() -\> \[Service\]** \

Types:

Service = service()\

Returns a list of available service names.

**start() -\>** \
 **start(Type) -\> ok \| {error, Reason}**\

Types:

Type = permanent \| transient \| temporary\

Starts the *Inets* application. Default type is *temporary*. See also [application(3erl)](/application/3erl.md).

**start(Service, ServiceConfig) -\> {ok, Pid} \| {error, Reason}**\
 **start(Service, ServiceConfig, How) -\> {ok, Pid} \| {error, Reason}**\

Types:

Service = service()\
 ServiceConfig = \[{Option, Value}\]\
 Option = property()\
 Value = term()\
 How = inets \| stand\_alone - default is inets.\

Dynamically starts an *Inets* service after the *Inets* application has been started.

**Note:**

Dynamically started services are not handled by application takeover and failover behavior when *Inets* is run as a distributed application. Nor are they automatically restarted when the *Inets* application is restarted. As long as the *Inets* application is operational, they are supervised and can be soft code upgraded.

A service started as *stand\_alone*, that is, the service is not started as part of the *Inets* application, lose all OTP application benefits, such as soft upgrade. The *stand\_alone*-service is linked to the process that started it. Usually some supervision functionality is still in place and in some sense the calling process becomes the top supervisor.

**stop() -\> ok** \

Stops the *Inets* application. See also [application(3erl)](/application/3erl.md).

**stop(Service, Reference) -\> ok \| {error, Reason}** \

Types:

Service = service() \| stand\_alone\
 Reference = pid() \| term() - service-specified reference\
 Reason = term()\

Stops a started service of the *Inets* application or takes down a *stand\_alone*-service gracefully. When option *stand\_alone* is used in start, only the pid is a valid argument to stop.

## SEE ALSO

[httpc(3erl)](/httpc/3erl.md), [httpd(3erl)](/httpd/3erl.md)
