start_link(Module, Args) -> Result
start_link(SupBridgeName, Module, Args) -> Result
Types
{local, Name} | {global, GlobalName} | {via, Module, ViaName}
Creates a supervisor bridge process, linked to the calling process, which calls Module:init/1 to start the subsystem. To ensure a synchronized startup procedure, this function does not return until Module:init/1 has returned.
-
If SupBridgeName={local,Name}, the supervisor bridge is registered locally as Name using register/2.
-
If SupBridgeName={global,GlobalName}, the supervisor bridge is registered globally as GlobalName using global:register_name/2.
-
If SupBridgeName={via,Module,ViaName}, the supervisor bridge is registered as ViaName using a registry represented by Module. The Module callback is to export functions register_name/2, unregister_name/1, and send/2, which are to behave like the corresponding functions in global. Thus, {via,global,GlobalName} is a valid reference.
If no name is provided, the supervisor bridge is not registered.
Module is the name of the callback module.
Args is an arbitrary term that is passed as the argument to Module:init/1.
-
If the supervisor bridge and the subsystem are successfully started, the function returns {ok,Pid}, where Pid is is the pid of the supervisor bridge.
-
If there already exists a process with the specified SupBridgeName, the function returns {error,{already_started,Pid}}, where Pid is the pid of that process.
-
If Module:init/1 returns ignore, this function returns ignore as well and the supervisor bridge terminates with reason normal.
-
If Module:init/1 fails or returns an error tuple or an incorrect value, this function returns {error,Error}, where Error is a term with information about the error, and the supervisor bridge terminates with reason Error.