Provided by: erlang-manpages_25.2.3+dfsg-1_all bug

NAME

       os_sup - Interface to OS System Messages

DESCRIPTION

       os_sup  is  a process providing a message passing service from the operating system to the
       error logger in the Erlang runtime system. It is  part  of  the  OS_Mon  application,  see
       os_mon(7). Available for Solaris and Windows.

       Messages  received  from the operating system results in an user defined callback function
       being called. This function can do whatever filtering and formatting is necessary and then
       deploy any type of logging suitable for the user's application.

SOLARIS OPERATION

       The Solaris (SunOS 5.x) messages are retrieved from the syslog daemon, syslogd.

       Enabling  the  service  includes  actions which require root privileges, such as change of
       ownership and file privileges of an executable binary file, and creating a  modified  copy
       of  the  configuration  file  for  syslogd. When os_sup is terminated, the service must be
       disabled, meaning the original configuration must be restored. Enabling/disabling  can  be
       done either outside or inside os_sup. See Configuration below.

   Warning:
       This  process  cannot  run  in  multiple  instances  on  the same hardware. OS_Mon must be
       configured to start os_sup on one node only if two or more Erlang  nodes  execute  on  the
       same machine.

       The format of received events is not defined.

WINDOWS OPERATION

       The Windows messages are retrieved from the eventlog file.

       The  nteventlog  module  is  used to implement os_sup. See nteventlog(3erl). Note that the
       start functions of nteventlog does not need to be used, as in this  case  the  process  is
       started automatically as part of the OS_Mon supervision tree.

       OS messages are formatted as a tuple {Time, Category, Facility, Severity, Message}:

         Time = {MegaSecs, Secs, MicroSecs}:
           A time stamp as returned by the BIF now().

         Category = string():
           Usually one of "System", "Application" or "Security". Note that the NT eventlog viewer
           has another notion of category,  which  in  most  cases  is  totally  meaningless  and
           therefore  not imported into Erlang. What is called a category here is one of the main
           three types of events occurring in a normal NT system.

         Facility = string():
           The source of the message, usually the name of the application that generated it. This
           could  be  almost  any  string.  When matching messages from certain applications, the
           version number of the application may have to be accounted for. This is  what  the  NT
           event viewer calls "source".

         Severity = string():
           One  of  "Error",  "Warning", "Informational", "Audit_Success", "Audit_Faulure" or, in
           case of a currently unknown Windows NT version "Severity_Unknown".

         Message = string():
           Formatted exactly as it would be in  the  NT  eventlog  viewer.  Binary  data  is  not
           imported into Erlang.

CONFIGURATION

         os_sup_mfa = {Module, Function, Args}:
           The  callback  function  to  use.  Module and Function are atoms and Args is a list of
           terms. When an OS message Msg is received, this function is  called  as  apply(Module,
           Function, [Msg | Args]).

           Default is {os_sup, error_report, [Tag]} which will send the event to the error logger
           using error_logger:error_report(Tag, Msg). Tag is the value  of  os_sup_errortag,  see
           below.

         os_sup_errortag = atom():
           This  parameter  defines  the  error  report type used when messages are sent to error
           logger using the default callback function. Default  is  std_error,  which  means  the
           events are handled by the standard event handler.

         os_sup_enable = bool():
           Solaris only. Defines if the service should be enabled (and disabled) inside (true) or
           outside (false) os_sup. For backwards compatibility reasons, the default is true.  The
           recommended  value  is  false,  as the Erlang emulator should normally not be run with
           root privileges, as is required for enabling the service.

         os_sup_own = string():
           Solaris only. Defines the directory which contains the  backup  copy  and  the  Erlang
           specific  configuration  files  for  syslogd, and a named pipe to receive the messages
           from syslogd. Default is "/etc".

         os_sup_syslogconf = string():
           Solaris only. Defines the full name of the configuration file for syslogd. Default  is
           "/etc/syslog.conf".

EXPORTS

       enable() -> ok | {error, Res}
       enable(Dir, Conf) -> ok | {error, Error}

              Types:

                 Dir = Conf = Res = string()

              Enables the os_sup service. Needed on Solaris only.

              If  the  configuration  parameter  os_sup_enable  is false, this function is called
              automatically by os_sup, using the values of os_sup_own  and  os_sup_syslogconf  as
              arguments.

              If  os_sup_enable  is  true,  this  function must be called before OS_Mon/os_sup is
              started. Dir defines the directory which contains the backup copy  and  the  Erlang
              specific  configuration files for syslogd, and a named pipe to receive the messages
              from syslogd. Defaults to "/etc". Conf defines the full name of  the  configuration
              file for syslogd. Default is "/etc/syslog.conf".

              Results in a OS call to:

              <PRIVDIR>/bin/mod_syslog otp Dir Conf

              where <PRIVDIR> is the priv directory of OS_Mon, code:priv_dir(os_mon).

              Returns  ok  if  this yields the expected result "0", and {error, Res} if it yields
              anything else.

          Note:
              This function requires root privileges to succeed.

       disable() -> ok | {error, Res}
       disable(Dir, Conf) -> ok | {error, Error}

              Types:

                 Dir = Conf = Res = string()

              Disables the os_sup service. Needed on Solaris only.

              If the configuration parameter os_sup_enable is  false,  this  function  is  called
              automatically by os_sup, using the same arguments as when enable/2 was called.

              If  os_sup_enable  is  true,  this  function  must be called after OS_Mon/os_sup is
              stopped. Dir defines the directory which contains the backup copy  and  the  Erlang
              specific  configuration files for syslogd, and a named pipe to receive the messages
              from syslogd. Defaults to "/etc". Conf defines the full name of  the  configuration
              file for syslogd. Default is "/etc/syslog.conf".

              Results in a OS call to:

              <PRIVDIR>/bin/mod_syslog nootp Dir Conf

              where <PRIVDIR> is the priv directory of OS_Mon, code:priv_dir(os_mon).

              Returns  ok  if  this yields the expected result "0", and {error, Res} if it yields
              anything else.

          Note:
              This function requires root privileges to succeed.

SEE ALSO

       error_logger(3erl), os_mon(3erl)

       syslogd(1M), syslog.conf(5) in the Solaris documentation.