---
name: "erl_boot_server"
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/erl_boot_server"
---

# erl\_boot\_server(3erl)

Boot server for other Erlang machines.

## NAME

erl\_boot\_server - Boot server for other Erlang machines.

## DESCRIPTION

This server is used to assist diskless Erlang nodes that fetch all Erlang code from another machine.

This server is used to fetch all code, including the start script, if an Erlang runtime system is started with command-line flag *-loader inet*. All hosts specified with command-line flag *-hosts Host* must have one instance of this server running.

This server can be started with the Kernel configuration parameter *start\_boot\_server*.

The *erl\_boot\_server* can read regular files and files in archives. See *[code(3erl)](/code/3erl.md)* and *[erl\_prim\_loader(3erl)](/erl_prim_loader/3erl.md)* in ERTS.

**Warning:**

The support for loading code from archive files is experimental. It is released before it is ready to obtain early feedback. The file format, semantics, interfaces, and so on, can be changed in a future release.

## EXPORTS

```
add_slave(Slave) -> ok | {error, Reason}
```

Types:

Slave = Host\
 Host = inet:ip\_address() \| inet:hostname()\
 Reason = {badarg, Slave}\

Adds a *Slave* node to the list of allowed slave hosts.

```
delete_slave(Slave) -> ok | {error, Reason}
```

Types:

Slave = Host\
 Host = inet:ip\_address() \| inet:hostname()\
 Reason = {badarg, Slave}\

Deletes a *Slave* node from the list of allowed slave hosts.

```
start(Slaves) -> {ok, Pid} | {error, Reason}
```

Types:

Slaves = \[Host\]\
 Host = inet:ip\_address() \| inet:hostname()\
 Pid = pid()\
 Reason = {badarg, Slaves}\

Starts the boot server. *Slaves* is a list of IP addresses for hosts, which are allowed to use this server as a boot server.

```
start_link(Slaves) -> {ok, Pid} | {error, Reason}
```

Types:

Slaves = \[Host\]\
 Host = inet:ip\_address() \| inet:hostname()\
 Pid = pid()\
 Reason = {badarg, Slaves}\

Starts the boot server and links to the caller. This function is used to start the server if it is included in a supervision tree.

```
which_slaves() -> Slaves
```

Types:

Slaves = \[Slave\]\
 Slave = \
\
     {Netmask :: inet:ip\_address(), Address :: inet:ip\_address()}\

Returns the current list of allowed slave hosts.

## SEE ALSO

*erts:[init(3erl)](/init/3erl.md)*, *erts:[erl\_prim\_loader(3erl)](/erl_prim_loader/3erl.md)*
