110 lines
3.3 KiB
Text
110 lines
3.3 KiB
Text
UPSSCHED.CONF(5)
|
|
================
|
|
|
|
NAME
|
|
----
|
|
|
|
upssched.conf - Configuration for upssched timer program
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
This file controls the operations of linkman:upssched[8], the timer-based
|
|
helper program for linkman:upsmon[8].
|
|
|
|
CONFIGURATION DIRECTIVES
|
|
------------------------
|
|
|
|
*CMDSCRIPT* 'scriptname'::
|
|
Required. This must be above any AT lines. This script is used to
|
|
invoke commands when your timers are triggered. It receives a single
|
|
argument which is the name of the timer that caused it to trigger.
|
|
|
|
*PIPEFN* 'filename'::
|
|
Required. This sets the file name of the socket which will be used for
|
|
interprocess communications. This should be in a directory where normal
|
|
users can't create the file, due to the possibility of symlinking
|
|
and other evil.
|
|
|
|
CAUTION: if you are running Solaris or similar, the permissions that
|
|
upssched sets on this file *are not enough* to keep you safe. If
|
|
your OS ignores the permissions on a FIFO, then you MUST put this in a
|
|
protected directory!
|
|
|
|
NOTE: by default, linkman:upsmon[8] will run upssched as whatever user
|
|
you have defined with RUN_AS_USER in linkman:upsmon.conf[8]. Make sure
|
|
that user can create files and write to files in the path you use for
|
|
PIPEFN and LOCKFN.
|
|
|
|
My recommendation: create a special directory for upssched, make it
|
|
owned by your upsmon user, then use it for both.
|
|
|
|
The stock version of the upssched.conf ships with PIPEFN disabled
|
|
to make you visit this portion of the documentation and think about how
|
|
your system works before potentially opening a security hole.
|
|
|
|
*LOCKFN* 'filename'::
|
|
Required. upssched attempts to create this file in order to avoid a
|
|
race condition when two events are dispatched from upsmon at nearly
|
|
the same time. This file will only exist briefly. It must not be
|
|
created by any other process.
|
|
+
|
|
You should put this in the same directory as PIPEFN.
|
|
|
|
*AT* 'notifytype' 'upsname' 'command'::
|
|
Define a handler for a specific event 'notifytype' on UPS
|
|
'upsname'. 'upsname' can be the special value * to apply this
|
|
handler to every UPS.
|
|
+
|
|
This will perform the command 'command' when the 'notifytype'
|
|
and 'upsname' match the current activity. Possible values for
|
|
'command' are:
|
|
|
|
*START-TIMER* 'timername' 'interval';;
|
|
Start a timer of 'interval' seconds. When it triggers, it
|
|
will pass the argument 'timername' as an argument to your
|
|
CMDSCRIPT.
|
|
+
|
|
Example:
|
|
+
|
|
Start a timer that'll execute when any UPS (*) has been
|
|
gone for 10 seconds
|
|
|
|
AT COMMBAD * START-TIMER upsgone 10
|
|
|
|
*CANCEL-TIMER* 'timername' ['cmd'];;
|
|
Cancel a running timer called 'timername', if possible.
|
|
If the timer has passed then pass the optional argument
|
|
'cmd' to CMDSCRIPT.
|
|
+
|
|
Example:
|
|
+
|
|
If a specific UPS (+myups@localhost+) comes back online, then
|
|
stop the timer before it triggers
|
|
|
|
AT COMMOK myups@localhost CANCEL-TIMER upsgone
|
|
|
|
*EXECUTE* 'command';;
|
|
Immediately pass 'command' as an argument to CMDSCRIPT.
|
|
+
|
|
Example:
|
|
+
|
|
If any UPS (*) reverts to utility power, then execute
|
|
`ups-back-on-line` via CMDSCRIPT.
|
|
|
|
AT ONLINE * EXECUTE ups-back-on-line
|
|
|
|
Note that any AT that matches both the 'notifytype' and the
|
|
'upsname' for the current event will be used.
|
|
|
|
For a complete list of 'notifytype' possible values, refer to the section
|
|
NOTIFY EVENTS in linkman:upsmon[8].
|
|
|
|
SEE ALSO
|
|
--------
|
|
|
|
linkman:upssched[8], linkman:upsmon[8]
|
|
|
|
Internet resources:
|
|
~~~~~~~~~~~~~~~~~~~
|
|
The NUT (Network UPS Tools) home page: http://www.networkupstools.org/
|