Parent.Supervisor (parent v0.12.1) View Source

Supervisor of child processes.

This module works similarly to callbackless supervisors started with Supervisor.start_link/2. To start a supervisor and some children you can do the following:

Parent.Supervisor.start_link([
  child_spec1,
  child_spec2,
  # ...
])

To install a parent supervisor in the supervision tree you can provide child specification in the shape of {Parent.Supervisor, {children, parent_options}}.

To build a dedicate supervisor module you can do:

defmodule MySupervisor do
  use Parent.Supervisor

  def start_link({children, options}),
    do: Parent.Supervisor.start_link(children, options)

  # ...
end

And now, you can install this supervisor in the supervision tree by passing {MySupervisor, {child_specs, parent_options}} as the child specification to the parent.

You can interact with the running supervisor using functions from the Parent.Client module. Refer to the Parent module for detailed explanation of child specifications, parent options, and behaviour of parent processes.

In case you need more flexibility, take a look at Parent.GenServer.

Link to this section Summary

Functions

Returns a specification to start this module under a supervisor. See Supervisor.

Starts the parent process.

Link to this section Functions

Specs

Returns a specification to start this module under a supervisor. See Supervisor.

Link to this function

start_link(children, options \\ [])

View Source

Specs

Starts the parent process.

This function returns only after all the children have been started. If a child fails to start, the parent process will terminate all successfully started children, and then itself.