Provided by: nut-client_2.8.1-3.1ubuntu2_amd64 bug

NAME

       upssched - Timer helper for scheduling events from upsmon

SYNOPSIS

       upssched

           Note
           upssched should be run from upsmon(8) via the NOTIFYCMD. You should never run it directly during
           normal operations.

DESCRIPTION

       upssched was created to allow users to execute programs at times relative to events being monitored by
       upsmon(8). The original purpose was to allow for a shutdown to occur after some fixed period on battery,
       but there are other uses that are possible.

INTEGRATION

       upssched needs to be called as the NOTIFYCMD in your upsmon.conf(5). It determines what is happening
       based on the UPSNAME and NOTIFYTYPE environment variables. You should never have to deal with them
       directly.

       Set the EXEC flag on the events that you want to see in upssched. For example, to make sure that upssched
       hears about ONLINE, ONBATT and LOWBATT events, the flags would look like this:

           NOTIFYFLAG ONLINE EXEC
           NOTIFYFLAG ONBATT EXEC
           NOTIFYFLAG LOWBATT EXEC

       If you also want to continue writing to the syslog, just add it in:

           NOTIFYFLAG ONLINE SYSLOG+EXEC
           NOTIFYFLAG ONBATT SYSLOG+EXEC
           NOTIFYFLAG LOWBATT SYSLOG+EXEC

       For a full list of notify flags, see the upsmon(8) documentation.

CONFIGURATION

       See upssched.conf(5) for information on configuring this program.

EARLY SHUTDOWNS

       To shut down the system early, define a timer that starts due to an ONBATT condition. When it triggers,
       make your CMDSCRIPT call your shutdown routine. It should finish by calling upsmon -c fsd so that upsmon
       gets to shut down the slaves in a controlled manner.

       Be sure you cancel the timer if power returns (ONLINE).

DEBOUNCING EVENTS

       If your UPS goes on and off battery frequently, you can use this program to reduce the number of pager
       messages that are sent out. Rather than sending pages directly from upsmon(8), use a short timer here. If
       the timer triggers with the UPS still on battery, then send the page. If the power returns before then,
       the timer can be cancelled and no page is necessary.

BACKGROUND

       This program was written primarily to fulfill the requests of users for the early shutdown scenario. The
       "outboard" design of the program (relative to upsmon) was intended to reduce the load on the average
       system. Most people don’t have the requirement of shutting down after N seconds on battery, since the
       usual OB+LB testing is sufficient.

       This program was created separately so those people don’t have to spend CPU time and RAM on something
       that will never be used in their environments.

       The design of the timer handler is also geared towards minimizing impact. It will come and go from the
       process list as necessary. When a new timer is started, a process will be forked to actually watch the
       clock and eventually start the CMDSCRIPT. When a timer triggers, it is removed from the queue. Cancelling
       a timer will also remove it from the queue. When no timers are present in the queue, the background
       process exits.

       This means that you will only see upssched running when one of two things is happening:

       •   There’s a timer of some sort currently running

       •   upsmon just called it, and you managed to catch the brief instance

       The final optimization handles the possibility of trying to cancel a timer when there are none running.
       If the timer daemon isn’t running, there are no timers to cancel, and furthermore there is no need to
       start a clock-watcher. So, it skips that step and exits sooner.

ENVIRONMENT VARIABLES

       NUT_DEBUG_LEVEL sets default debug verbosity if no -D arguments were provided on command line, but does
       not request that the daemon runs in foreground mode.

           Note
           Unlike some other NUT daemons, upssched with enabled debug does not stop reporting on stderr! It
           forks a background process with the first call as an event handler, which exits soon after all
           tracked timers have elapsed and were handled (if needed).

       UPSNAME and NOTIFYTYPE are required, as detailed above. They are set by upsmon when it calls upssched as
       its choice of NOTIFYCMD.

       NUT_CONFPATH is the path name of the directory that contains upssched.conf and other configuration files.
       If this variable is not set, upssched uses a built-in default, which is often /usr/local/ups/etc.

FILES

       upssched.conf(5)

SEE ALSO

       upsmon(8)

   Internet resources:
       The NUT (Network UPS Tools) home page: https://www.networkupstools.org/