NAME
evmwatch — monitor EVM events
SYNOPSIS
evmwatch
[-A
[-t
show_template]]
[-f
filter_expr]
[-C
channel-list]
[-w
timeout]
[-i | -x]
[-R
reconnect-timeout]
DESCRIPTION
The
evmwatch
command subscribes to the events specified by the
-f filter_expr
option and passes all events to its
stdout
stream as they arrive.
Output is in the form of raw EVM events.
If the
-A
option is specified,
evmwatch
automatically starts
evmshow
and pipes the event stream into it, producing a formatted display of
events.
If a
show_template
argument is supplied, the specified template string is passed to
evmshow
through its own
-t
option.
See
evmshow(1)
for more information.
If
evmwatch
cannot connect to the EVM daemon, it terminates immediately with an
error message.
If it succeeds in connecting but subsequently loses the connection, it
attempts to reconnect periodically until the
reconnect-timeout
period expires.
The retry period is one second for the first minute, and five seconds thereafter.
Options
- -A
Automatically starts
evmshow
to produce a formatted display of the received events.
- -f filter_expr
Subscribes for notification of events matching
filter_expr.
See
EvmFilter(5)
for the syntax of
filter_expr.
By default, the
evmwatch
command subscribes for all events.
- -t show_template
Template string to be passed to
evmshow
if the
-A
option is also specified.
If the
-A
option is not specified, this argument is ignored.
See
evmshow(1)
for a description of the template string.
- -w timeout
Terminates if no event is processed in the time specified by
timeout.
The format of
timeout
is
[[[days
:]hours
:]minutes
:]seconds,
where
days,
hours,
and
minutes
can be any integer up to 9999, and
seconds
can be any integer up to 9999999.
Omitted values are interpreted as zero.
If the converted value exceeds 100,000,000 seconds, it is automatically
reduced to that value with no error being reported.
The timer is restarted each time an event is received.
- -i
Retrieves copies of all of the registered event templates from the EVM
daemon that match the supplied filter string and for which the user has
access authorization.
It writes the templates to
stdout
as EVM events and terminates.
- -x
Terminates with a zero exit value as soon as the first event matching
filter_expr
is processed.
- -R reconnect-timeout
Specifies the period for which
evmwatch
should continue to attempt to reconnect if the connection to the EVM
daemon is lost.
The format of
reconnect-timeout
is
[[[days
:]hours
:]minutes
:]seconds,
where
days,
hours,
and
minutes
can be any integer up to 9999, and
seconds
can be any integer up to 9999999.
Omitted values are interpreted as zero.
If the converted value exceeds 100,000,000 seconds, it is automatically
reduced to that value with no error being reported.
If
reconnect-timeout
is zero,
evmwatch
terminates immediately if a disconnection occurs.
If this option is not specified, the reconnection timeout is set to
five minutes.
RETURN VALUES
The following exit values are returned:
- 0
Successful completion
- not 0
An error occurred, including timeout.
EXAMPLES
The following
ksh
example watches for all events with a priority of at least 200 and
displays them on
stdout.
Events are piped automatically through
evmshow
to produce a formatted event display.
export EVM_SHOW_TEMPLATE="@timestamp [@priority] @@"
evmwatch -A -f "[pri >= 200]"
The following example shows how
evmwatch
waits until another process posts a particular event and then continues.
Redirection of output to
/dev/null
implies that the content of the event is of no concern.
evmwatch -f "[name myco.ops.backup.done]" -x >/dev/null
The following script builds on the prior example.
It waits for five minutes (300 seconds) for the event to occur or exits
as soon as the event happens.
#! /bin/ksh
evmwatch -f "[name myco.ops.backup.*]" -x -w 300 >/dev/null
if [ $? -eq 0 ]
then
echo Backup completed!
else
echo Backup timed out!
fi
The following shell script waits for up to five minutes (300 seconds)
for a pulse event to be received.
Each time the pulse arrives, the timer is reset and
evmwatch
waits for the next pulse.
If the timer expires,
evmwatch
terminates with an error code, a warning is displayed, a high priority
event is posted, and the script exits.
#! /bin/ksh
evmwatch -f "[name myco.myapp.pulse]" -w 300 >/dev/null
if [ $? -ne 0 ] then
echo `date` Pulse monitor: No pulse received.
evmpost <<END
event {
name myco.myapp.pulsemon.no_pulse
priority 650
}
END
fi
The following example lists the names of all registered events that the
user is authorized to access.
evmwatch -i | evmshow -t "@name" | more
WARNINGS
The
evmwatch
command rejects attempts to output raw events to a terminal device.
The
evmwatch
command receives events only for which the user has access authorization.
See
evm.auth(4)
for details of access authorization.
FILES
- /etc/services
Definition of the sockets and protocols used for Internet Services