File appldata of Package s390-tools

#!/bin/sh
# Copyright (c) 2003 SUSE LINUX AG Nuernberg, Germany.
#
# Submit feedback to http://www.suse.de/feedback/
#
# /etc/init.d/appldata
#
#   and symbolic its link
#
# /use/sbin/rcappldata
#
# System startup script for "Linux - z/VM Monitor Stream".
#
### BEGIN INIT INFO
# Provides: appldata
# Required-Start: $network $remote_fs
# Required-Stop:  $null
# Default-Start:  3 5
# Default-Stop:   0 1 6
# Short-Description:    Linux - z/VM Monitor Stream
# Description:    Start the Linux - z/VM Monitor Stream
### END INIT INFO
#

# Local settings
LOCKFILE=/var/lock/appldata
CONFIGFILE=/etc/sysconfig/appldata

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     ditto but be verbose in local rc status
#      rc_status -v -r  ditto and clear the local rc status
#      rc_failed        set local and overall rc status to failed
#      rc_failed <num>  set local and overall rc status to <num><num>
#      rc_reset         clear local rc status (overall remains)
#      rc_exit          exit appropriate to overall rc status
. /etc/rc.status

# First reset status of this service
rc_reset

# APPLDATA support in kernel?
if [ ! -e /proc/sys/appldata/interval ]; then
	echo "No kernel support for \"Linux - z/VM Monitor Stream\"!"
	exit 1
fi


# Source config file
if [ -f $CONFIGFILE ]; then
	. $CONFIGFILE
else
	echo "No config file found (should be $CONFIGFILE)."
	exit 1
fi

RETVAL=0

start() {
	echo "Starting \"Linux - z/VM Monitor Stream\" ..."
	if [ -e $LOCKFILE ]; then
		echo -n "(already running)"
		rc_status -v
		rc_exit
	fi
	echo -n "(interval $APPLDATA_INTERVAL milliseconds) "
	echo $APPLDATA_INTERVAL > /proc/sys/appldata/interval
	if [ "$APPLDATA_MEM" = "yes" ]; then
	    if [ ! -e /proc/sys/appldata/mem ]; then
		echo -n "(mem) "
		modprobe appldata_mem 2>&1
		if [ "$?" -ne 0 ] ; then
		    rc_failed 1
		else
		    echo 1 > /proc/sys/appldata/mem
		fi
	    fi
	fi
	if [ "$APPLDATA_OS" = "yes" ]; then
	    if [ ! -e /proc/sys/appldata/os ]; then
		echo -n "(os) "
		modprobe appldata_os 2>&1
		if [ "$?" -ne 0 ]; then
		    rc_failed 1
		else
		    echo 1 > /proc/sys/appldata/os
		fi
	    fi
	fi
	if [ "$APPLDATA_NET_SUM" = "yes" ]; then
	    if [ ! -e /proc/sys/appldata/net_sum ]; then
		echo -n "(net_sum) "
		modprobe appldata_net_sum 2>&1
		if [ "$?" -ne 0 ]; then
		    rc_failed 1
		else
		    echo 1 > /proc/sys/appldata/net_sum
		fi
	    fi
	fi
	echo -n "(timer)"
	echo 1 > /proc/sys/appldata/timer
	touch $LOCKFILE
	rc_status -v
}

stop() {
	echo -n "Stopping \"Linux - z/VM Monitor Stream\" "
	echo -n "(timer"
	echo 0 > /proc/sys/appldata/timer
	if [ -e /proc/sys/appldata/mem ]; then
		echo -n ",mem"
		echo 0 > /proc/sys/appldata/mem
		rmmod appldata_mem
	fi
	if [ -e /proc/sys/appldata/os ]; then
		echo -n ",os"
		echo 0 > /proc/sys/appldata/os
		rmmod appldata_os
	fi
	if [ -e /proc/sys/appldata/net_sum ]; then
		echo -n ",net_sum"
		echo 0 > /proc/sys/appldata/net_sum
		rmmod appldata_net_sum
	fi
	echo -n ")"
	rm -f $LOCKFILE
	rc_status -v
}

restart() {
	stop
	start
}

status() {
	echo "\"Linux - z/VM Monitor Stream\" status..."
	echo -n "interval "
	cat /proc/sys/appldata/interval
	echo -n "timer    "
	cat /proc/sys/appldata/timer
	echo -n "mem      "
	if [ -e /proc/sys/appldata/mem ]; then
		cat /proc/sys/appldata/mem
	else
		echo 0
	fi
	echo -n "os       "
	if [ -e /proc/sys/appldata/os ]; then
		cat /proc/sys/appldata/os
	else
		echo 0
	fi
	echo -n "net_sum  "
	if [ -e /proc/sys/appldata/net_sum ]; then
		cat /proc/sys/appldata/net_sum
	else
		echo 0
	fi
}

# How are we called?
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	status)
		status
		;;
	restart|reload)
		restart
		;;
	*)
		echo "Usage: appldata {start|stop|status|restart|reload}"
		RETVAL=1
esac

exit $RETVAL