upssched.conf (5) - Linux Manuals
upssched.conf: Configuration for upssched timer program
NAME
upssched.conf - Configuration for upssched timer program
DESCRIPTION
This file controls the operations of upssched(8), the timer-based helper program for 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, upsmon(8) will run upssched as whatever user you have defined with RUN_AS_USER in 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 [at] localhost) comes back online, then stop the timer before it triggers
-
AT COMMOK myups [at] 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
-
-
Start a timer of
interval
seconds. When it triggers, it will pass the argument
timername
as an argument to your CMDSCRIPT.
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 upsmon(8).