[Nut-upsuser] FW: Setup of upssched on opensuse 11 - examined pipefn ad lockfm

tarbeite tarbeite at fit.edu
Wed Sep 17 12:29:05 UTC 2008



On 9/16/08 3:35 PM, "Arjen de Korte" <nut+users at de-korte.org> wrote:

> Citeren tarbeite <tarbeite at fit.edu>:
> 
>> Running opensuse 11 with two ups that can be seen via web interface and post
>> messages on the console.
> 
> Please post the contents of /etc/ups/upssched.conf here. Also make
> sure that the directory mentioned in PIPEFN and LOCKFN exists and is
> writeable by the user running upssched (typically 'upsd' on openSUSE).
> 
> Best regards, Arjen

Arjen;

Thanks for the pointers. I looked at the lockfn and pipefn location as shown
in the upssched.conf file. Mine both point to
/var/lib/ups/upssched/upssched.pipe and /var/lib/ups/upssched/upssched.lock.
Both of these files or directories don't exsist. Should I create them here
or put them else where. Also how to you make the .pipe and .lock file or
does it get generated automatically?

Second you here is my upssched.conf as requested:

# 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 /var/lib/ups/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 /var/lib/ups/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:
#   Start a timer that'll execute when any UPS (*) has been gone 10 seconds
# 
#   AT COMMBAD * START-TIMER upsgone 10

#    AT ONBATT tim_ups at localhost  START-TIMER timonbattwarn 10
#    AT ONBATT test_ups at localhost  START-TIMER testonbattwarn 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
#    AT ONLINE tim_ups at localhost CANCEL-TIMER timonbattwarn
#    AT ONLINE test_ups at localhost CANCEL-TIMER testbattwarn
    
#   -----------------------------------------------------------------------
# 
# - 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
    AT ONBATT * EXECUTE onbattwarn

Thanks again




------ End of Forwarded Message




More information about the Nut-upsuser mailing list