syseventadm(1M)
NAME
syseventadm - sysevent event specification administration
SYNOPSIS
syseventadm add [-R rootdir] [-v vendor] [-p publisher] [-c
class] [-s subclass] [-u username] path [args]
syseventadm remove [-R rootdir] [-v vendor] [-p publisher]
[-c class] [-s subclass] [-u username] [path [args]]
syseventadm list [-R rootdir] [-v vendor] [-p publisher] [-c
class] [-s subclass] [-u username] [path [args]]
syseventadm restart
DESCRIPTION
The syseventadm command is an administrative front-end to
add, remove and list sysevent event handlers. syseventadm
can only be run by root.
The syseventadm add command adds a handler for a sysevent
event specified by at least one of vendor, publisher or
class. If class is specified, it may be qualified with a
sub-class. Only the values specified for vendor, publisher,
class and sub-class when adding the handler are matched
against sysevent events to determine if the specification
matches the event and the handler should be run. path is the
full pathname of the command to be run in response to match-
ing events, with optional arguments (args). If username is
specified, the command is invoked as user username, other-
wise as root.
The syseventadm remove command removes handlers for matching
sysevent event specifications. Event specifications may be
matched by specifying at least one of vendor, publisher,
class, username or path. If class is specified, it may be
qualified with a sub-class. Any of vendor, publisher, class,
sub-class, username, path or args not specified match the
corresponding fields of all events. Handlers for all match-
ing specifications are removed.
The syseventadm list command lists the handlers for matching
sysevent event specifications using the same match criteria
as the remove command but without the requirement that at
least one of vendor, publisher, class, username or path be
specified. With no match criteria, all specifications are
listed. The list command output format is: [vendor=vendor]
[publisher=publisher] [class=class] [subclass=subclass]
[username=username] path [args] where each of class, sub-
class, vendor, publisher and username is listed only if part
of the match criteria for the listed specification.
The syseventadm restart command informs the syseventd daemon
to reread the sysevent registry after a change has been made
by adding or removing one or more sysevent handler specifi-
cations.
Argument Macro Substitution
The sysevent handling facility provides extensive macro
capability for constructing the command line arguments to be
executed in response to an event. Macro expansion applies
only to the command line args specified for an event
handler, with macros expanded with data from the event
itself. Pre-defined macros are provided for the event class,
subclass, publisher and vendor information. Macros not
matching one of the pre-defined macro names cause the attri-
bute list attached to the event to be searched for an attri-
bute of that name, with the value of the matching attribute
substituted on the command line.
Macros are introduced by the $ character, with the macro
name being the following token separated by a <SPACE> or
<TAB> character. If the macro name is embedded in text, it
may be delineated by ${ and }. A \ before the $ causes macro
expansion not to occur.
$class
The class string defining the event
$publisher
The publisher string defining the event
$sequence
The sequence number of the event.
$subclass
The subclass string defining the event
$timestamp
The timestamp of the event.
$vendor
The vendor string defining the event
Macro names other than those pre-defined are compared
against the attribute list provided with the event. An
attribute with name matching the macro name causes the value
of the attribute to be substituted as ASCII text on the gen-
erated command line.
Use of a macro for which no attribute with that name is
defined, or for which multiple attributes with that name are
provided, cause an error and the command is not invoked.
Attributes with signed data types (DATA_TYPE_INT16,
DATA_TYPE_INT32 and DATA_TYPE_INT64) are expanded as decimal
digits.
Attributes with unsigned data types (DATA_TYPE_BYTE,
DATA_TYPE_UINT16, DATA_TYPE_UINT32, DATA_TYPE_UINT64 and
DATA_TYPE_HTTIME) are expanded as hexadecimal digits with a
0x prefix.
Attributes with string data type (DATA_TYPE_STRING) are
expanded with the string data. The data is not quoted. If if
it desired that the quoted strings be generated on the com-
mand line, put quotes around the macro call in the argu-
ments.
Array types are expanded with each element expanded as
defined for that scalar type, with a space separating each
element substitution.
OPTIONS
The following options are supported:
-c class
The string specifying the event class.
-p publisher
The string specifying the event publisher.
-R rootdir
Cause syseventadm to use an alternate root path root-
dir.
-s subclass
The string specifying the event subclass.
-u username
The user under which the command is to be invoked.
-v vendor
The string specifying the vendor defining the event.
Events defined by third-party software should use the
company's stock symbol. Sun-defined events use SUNW.
OPERANDS
The following operands are supported:
args Command arguments
path Full path of command to be run in response to event
EXAMPLES
Example 1: Adding an Event Handler
The following example adds an event handler for an event
defined by vendor SUNW, class EC_ENV and sub-class
ESC_ENV_TEMP. The command to be run is
/opt/SUNWenv/bin/ec_env_temp, with arguments being the class
name, sub-class name and pathname derived from the event
attributes. The $ characters are preceded by a backslash to
circumvent shell interpretation. There is no need to restart
the service after the change since the registry is main-
tained on $ALTROOT.
# syseventadm add -R LTROOT -v SUNW -c EC_ENV -s ESC_ENV_TEMP
/opt/SUNWenv/bin/ec_env_temp lass ubclass athname
Example 2: Removing an Event Handler
The following example removes the event handler added in
Example 1.
# syseventadm remove -R LTROOT -v SUNW -c EC_ENV -s ESC_ENV_TEMP
/opt/SUNWenv/bin/ec_env_temp class} subclass} pathname}
Example 3: Listing Event Handlers
The following example lists all event handlers for events of
class EC_ENV, subclass ESC_ENV_TEMP, as defined by vendor
SUNW:
# syseventadm list -v SUNW -c EC_ENV -s ESC_ENV_TEMP
vendor=SUNW class=EC_ENV subclass=ESC_ENV_TEMP
/opt/SUNWenv/bin/ec_env_temp class} subclass} pathname}
Example 4: Listing Event Handlers
The following example lists all event handlers defined by
vendor VRTS.
# syseventadm list -v VRTS
Example 5: Removing Event Handlers
The following example removes all event handlers defined by
vendor VRTS, and restarts service.
# syseventadm remove -v VRTS
# syseventadm restart
Example 6: Listing All Event Handlers Specified to Run a
Command
The following example lists all event handlers specified to
run the command /opt/SUNWenv/bin/ec_env_temp:
# syseventadm list /opt/SUNWenv/bin/ec_env_temp
Example 7: Removing Event Handlers and Restarting Service
The following example removes all event handlers specified
to run the command /opt/SUNWenv/bin/ec_env_temp, and res-
tarts service:
# syseventadm remove /opt/SUNWenv/bin/ec_env_temp
# syseventadm restart
EXIT STATUS
The following exit values are returned:
0 Successful completion.
1 No matching event specification found (remove or list
commands only)
2 Incorrect command usage.
3 Permission denied.
4 Command failed.
5 Out of memory
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | SUNWcsu |
|_____________________________|_____________________________|
SEE ALSO
syseventd(1M), attributes(5)
NOTES
To avoid upgrade problems, packages delivering a sysevent
event handler should install the event handler by running
syseventadm from the package's postinstall script. The event
handler can then be removed by running syseventadm from the
package's preremove script using the same arguments as when
added.
Man(1) output converted with
man2html