Copyright © 2009-2021 Michael Truog
Version: 2.0.2 Jun 20 2023 18:35:37 ------------------------------------------------------------------------
Behaviours: supervisor.
Authors: Michael Truog (mjtruog at protonmail dot com).
init/1 | |
start_link/1 |
Start the CloudI application supervisor.. |
init(X1) -> any()
start_link(Config::#config{uuid_generator = uuid:state(), concurrency = cloudi_core_i_concurrency:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), file_sync = cloudi_service_api:logging_file_sync_value_milliseconds(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(nonempty_string(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = cloudi:service_name_pattern(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = cloudi_service_api:args_internal(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_start_value_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_value_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_value_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_value_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), fatal_exceptions = boolean(), fatal_timeout = boolean(), fatal_timeout_delay = cloudi_service_api:fatal_timeout_delay_value_milliseconds(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_value_milliseconds(), restart_all = boolean(), restart_delay = false | tuple(), critical = boolean(), scope = atom(), monkey_latency = false | tuple(), monkey_chaos = false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], bind = false | tuple(), aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = cloudi:service_name_pattern(), file_path = cloudi_service_api:file_path(), args = cloudi_service_api:args_external(), env = cloudi_service_api:env_external(), dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_start_value_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_value_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_value_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_value_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), fatal_exceptions = boolean(), fatal_timeout = boolean(), fatal_timeout_delay = cloudi_service_api:fatal_timeout_delay_value_milliseconds(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_value_milliseconds(), restart_all = boolean(), restart_delay = false | tuple(), critical = boolean(), scope = atom(), monkey_latency = false | tuple(), monkey_chaos = false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], bind = false | tuple(), aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:period_seconds(), reconnect_delay = cloudi_service_api:period_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, pid()} | {error, any()}
Generated by EDoc