The Inets services API.

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


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

service() = ftpc | tftp | httpc | httpd

property() = atom()


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

  • Service = service()
  • Pid = pid()

Returns a list of currently running services.


Services started as stand_alone are not listed.

services_info() -> [{Service, Pid, Info}]

  • Service = service()
  • Pid = pid()
  • Info = [{Option, Value}]
  • 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.

service_names() -> [Service]

  • Service = service()

Returns a list of available service names.

start() ->

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

  • Type = permanent | transient | temporary

Starts the Inets application. Default type is temporary. See also application(3).

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

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

  • 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.


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(3).

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

  • 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.