[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