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 | tfptd | httpc | httpd

property() = atom()


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

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

Returns a list of currently running services.


Services started as stand_alone will not be 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 a [{Option, Value}] list. The information given in the list is specific for each service and it is probable that each service will have its own info function that gives you even 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)

stop() -> ok

Stops the inets application. 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 will not be handled by application takeover and failover behavior when inets is run as a distributed application. Nor will they be automatically restarted when the inets application is restarted, but as long as the inets application is up and running they will be supervised and may be soft code upgraded. Services started as stand_alone, e.i. the service is not started as part of the inets application, will lose all OTP application benefits such as soft upgrade. The "stand_alone-service" will be linked to the process that started it. In most cases some of the supervision functionality will still be in place and in some sense the calling process has now become the top supervisor.

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 the stand_alone option is used in start, only the pid is a valid argument to stop.


ftp(3), http(3), httpd(3), tftp(3)