summaryrefslogtreecommitdiff
path: root/nut/titanium/upssched.conf
diff options
context:
space:
mode:
authorpants <niklasjo2004@gmail.com>2026-09-21 14:16:02 -0700
committerpants <niklasjo2004@gmail.com>2026-09-21 14:16:02 -0700
commit40f81d08239763c2b5c05af63f17e3fd098d978d (patch)
treeb4475da076490a5fadc69904ad26bcf4ac46b9fc /nut/titanium/upssched.conf
init
Diffstat (limited to 'nut/titanium/upssched.conf')
-rw-r--r--nut/titanium/upssched.conf124
1 files changed, 124 insertions, 0 deletions
diff --git a/nut/titanium/upssched.conf b/nut/titanium/upssched.conf
new file mode 100644
index 0000000..0db4507
--- /dev/null
+++ b/nut/titanium/upssched.conf
@@ -0,0 +1,124 @@
+# Network UPS Tools - upssched.conf sample file
+#
+# ============================================================================
+#
+# CMDSCRIPT <scriptname>
+#
+# This script gets called to invoke commands for timers that trigger.
+# It is given a single argument - the <timername> in your
+# AT ... START-TIMER defines.
+#
+# *** This must be defined *before* the first AT line. Otherwise the
+# program will complain and exit without doing anything.
+#
+# A shell script with a big case..esac construct should work nicely for this.
+# An example has been provided to help you get started.
+
+CMDSCRIPT /usr/bin/upssched-cmd
+
+# ============================================================================
+#
+# PIPEFN <filename>
+#
+# This sets the file name of the FIFO that will pass communications between
+# processes to start and stop timers. This should be set to some path where
+# normal users can't create the file, due to the possibility of symlinking
+# and other evil.
+#
+# Note: 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 2: by default, upsmon will run upssched as whatever user you have
+# defined with RUN_AS_USER in upsmon.conf. 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.
+#
+# This is commented out by default to make you visit this file and think
+# about how your system works before potentially opening a hole.
+#
+# PIPEFN /run/nut/upssched/upssched.pipe
+
+# ============================================================================
+#
+# LOCKFN <filename>
+#
+# REQUIRED. This was added after version 1.2.1.
+#
+# upssched needs to be able to create this filename 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.
+#
+# LOCKFN /run/nut/upssched/upssched.lock
+
+# ============================================================================
+#
+# 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
+# possible value of <upsname>.
+#
+# Run the command <command> via your CMDSCRIPT when it happens.
+#
+# Note that any AT that matches both the <notifytype> and the <upsname>
+# for the current event will be used.
+
+# ============================================================================
+#
+# Possible AT commands
+#
+# - START-TIMER <timername> <interval>
+#
+# Start a timer called <timername> that will trigger after <interval>
+# seconds, calling your CMDSCRIPT with <timername> as the first
+# argument.
+#
+# Example:
+# 1) Start a timer that will execute when communication with any UPS (*) has
+# been gone for 10 seconds
+#
+# AT COMMBAD * START-TIMER upsgone 10
+#
+# 2) Start a timer that will execute when any UPS (*) has been running
+# on battery for 30 seconds
+#
+# AT ONBATT * START-TIMER onbattwarn 30
+
+# -----------------------------------------------------------------------
+#
+# - 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:
+# 1) If a specific UPS (myups@localhost) communication is restored, then stop
+# the timer before it triggers
+#
+# AT COMMOK myups@localhost CANCEL-TIMER upsgone
+#
+# 2) If any UPS (*) reverts to utility power, then stop the timer before it
+# triggers
+#
+# AT ONLINE * CANCEL-TIMER onbattwarn
+
+# -----------------------------------------------------------------------
+#
+# - 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