[Eisfair] Script für USV-Software auf einem Eisfair-1
Jürgen Witt
j-witt at web.de
Di Jun 19 11:19:49 CEST 2012
Hallo NG,
bei einem Kunden, der Eisfair-1 (base 1.8.4, kernel 2.0.23) einsetzt,
soll die Software (Name=Powershield) einer USV (per TCP/IP verbunden)
installiert werden. Auf der Seite des Herstellers
http://www.riello-ups.de/index.php?page=356
gibt es aber keine Version für ein Standard-Linux.
Daher habe ich mir jetzt fast alle Versionen herunter geladen und
entpackt, um zu sehen, was auf dem Eisfair laufen könnte.
Zu Laufen scheint der upsagent auf dem Eisfair-1 jetzt, nachdem ich im
Startscript der RedHat-Version herumgestümpert habe.
Hier das Originalscript /etc/init.d/upsmon
#!/bin/bash
#
# RedHat SysV init script Upsmon
#
# By Massimo Zampieri <m.zampieri at riello-ups.com>
# Modified by Ruediger Brink <brink at riello-ups.de>
#
# /etc/rc.d/init.d/upsmon
#
# Starts the upsagent daemon
#
# chkconfig: 2345 06 06
# description: UPS daemon for RPS S.p.A
# processname: upsagent
# source function library
. /etc/rc.d/init.d/functions
# The name used for daemon/killproc.
upsagent=${UPSAGENT-/opt/upsmon/upsagent}
prog=upsagent
pidfile=${PIDFILE-/var/run/upsagent.pid}
lockfile=${LOCKFILE-/var/lock/subsys/upsagent}
RETVAL=0
start()
{
echo -n $"Starting $prog: "
daemon $upsagent
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -d 10 $upsagent
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
return $RETVAL
}
status() {
[ -f ${lockfile} ] && echo -n $"Running $prog: " || echo -n $"not
Running $prog: "
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
RETVAL=1
esac
exit $RETVAL
Die von mir geänderte Version:
#!/bin/bash
#
# RedHat SysV init script Upsmon
#
# By Massimo Zampieri <m.zampieri at riello-ups.com>
# Modified by Ruediger Brink <brink at riello-ups.de>
#
# /etc/rc.d/init.d/upsmon
#
# Starts the upsagent daemon
#
# chkconfig: 2345 06 06
# description: UPS daemon for RPS S.p.A
# processname: upsagent
# source function library
. /etc/init.d/functions
# The name used for daemon/killproc.
upsagent=${UPSAGENT-/opt/upsmon/upsagent}
prog=upsagent
pidfile=${PIDFILE-/var/run/upsagent.pid}
lockfile=${LOCKFILE-/var/lock/subsys/upsagent}
RETVAL=0
start()
{
echo -n $"Starting $prog: "
# daemon $upsagent
$upsagent
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
# killproc -d 10 $upsagent
killproc $upsagent
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
return $RETVAL
}
status() {
[ -f ${lockfile} ] && echo -n $"Running $prog: " || echo -n $"not
Running $prog: "
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
RETVAL=1
esac
exit $RETVAL
Ich habe den Pfad zu "functions" angepaßt, das "daemon" entfernt und bei
"killproc" das "d -10" und den Unterordner /var/lock/subsys angelegt und
hier wird auch eine Datei upsagent angelegt. Eine /var/run/upsagent.pid
wird nicht erstellt.
Die Software selbst liegt unter /opt/upsmon/
Für die verschiedenen Runlevel rc0.d, rc2.d und rc6.d heißt die
entsprechende Datei K06upsmon. Ist das OK?
Kann mir jemand sagen, wie das Script für einen Eisfair-1 aussehen muß?
Danke
Jürgen
Mehr Informationen über die Mailingliste Eisfair