Группа :: Мониторинг
Пакет: xymon
Главная Изменения Спек Патчи Исходники Загрузить Gear Bugs and FR Repocop
#!/bin/sh
#
# xymon client init.d script.
#
#----------------------------------------------------------------------------#
# This invokes xymonlaunch, which in turn runs the Xymon client and any #
# extensions configured. #
# #
# Copyright (C) 2005-2010 Henrik Storner <henrik@hswn.dk> #
# #
# Integration of runclient.sh and xymon-client.initd by Japheth Cleaver 2011 #
# Rewrote init script for ALT Linux by Sergey Y. Afonin 2013 #
# #
# This program is released under the GNU General Public License (GPL), #
# version 2. See the file "COPYING" for details. #
# #
#----------------------------------------------------------------------------#
#
# chkconfig: - 80 20
# description: Xymon is a network monitoring tool that can monitor hosts \
# and services. The client reports local system statistics \
# (cpu, memory, disk, etc) to Xymon server.
#
# processname: xymonlaunch
# pidfile: @XYMONRUNDIR@/xymonlaunch.pid
# config: @XYMONTOPDIR@/client/etc/xymonclient.cfg
# config: @XYMONTOPDIR@/client/etc/clientlaunch.cfg autoreload
#
### BEGIN INIT INFO
# Provides: xymon-client
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Short-Description: start and stop the xymon client
# Description: Xymon is a network monitoring tool that can monitor hosts
# and services. The client reports local system statistics
# (cpu, memory, disk, etc) to Xymon server.
### END INIT INFO
# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1
# Source function library.
. /etc/init.d/functions
USER=@XYMONUSER@
DAEMON=xymonlaunch
RUNPATH=/usr/bin
LOCKFILE=/var/lock/subsys/$DAEMON
XYMONCLIENTHOME="@XYMONTOPDIR@/client"
RETVAL=0
# Default settings for this client
MACHINEDOTS="`uname -n`" # This system's hostname
SERVEROSTYPE="`uname -s | tr '[A-Z/]' '[a-z_]'`" # This system's operating system in lowercase
CONFIGCLASS="" # This system's config class
# Source config files
. /etc/sysconfig/xymon-client
# Check for overrides from /etc/sysconfig/xymon-config
[ -n "$CLIENTHOSTNAME" ] && MACHINEDOTS="$CLIENTHOSTNAME"
[ -n "$CLIENTOS" ] && SERVEROSTYPE="$CLIENTOS"
[ -n "$CLIENTCLASS" ] && CONFIGCLASS="$CLIENTCLASS"
MACHINE="`echo $MACHINEDOTS | sed -e 's/\./,/g'`"
XYMONOSSCRIPT="xymonclient-${SERVEROSTYPE}.sh"
XYMONLAUNCHOPTS="$XYMONLAUNCHOPTS"
export MACHINE MACHINEDOTS SERVEROSTYPE XYMONOSSCRIPT XYMONLAUNCHOPTS XYMONCLIENTHOME CONFIGCLASS
# Values used in the remainder of the initscript
envfile="@XYMONTOPDIR@/client/etc/xymonclient.cfg"
configfile="@XYMONTOPDIR@/client/etc/clientlaunch.cfg"
logfile="@XYMONLOGDIR@/xymonlaunch.log"
pidfile="@XYMONRUNDIR@/xymonlaunch.pid"
# Check to make sure our pidfile's directory exists
rundir="`dirname $pidfile`"
[ -d "$rundir" ] || install -d -o "$user" -g "$user" "$rundir" || exit 1
start()
{
start_daemon --pidfile "$pidfile" --lockfile "$LOCKFILE" --expect-user $USER --user $USER -- $RUNPATH/$DAEMON \
$XYMONLAUNCHOPTS --env=$envfile --config=$configfile --log=$logfile --pidfile=$pidfile
RETVAL=$?
return $RETVAL
}
stop()
{
stop_daemon --pidfile "$pidfile" --lockfile "$LOCKFILE" --expect-user $USER -- $RUNPATH/$DAEMON
RETVAL=$?
return $RETVAL
}
restart()
{
stop
start
}
reload()
{
msg_reloading $DAEMON
stop_daemon --pidfile "$pidfile" --expect-user $USER -HUP -- $RUNPATH/$DAEMON
RETVAL=$?
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
condstop)
if [ -e "$LOCKFILE" ]; then
stop
fi
;;
condrestart)
if [ -e "$LOCKFILE" ]; then
restart
fi
;;
condreload)
if [ -e "$LOCKFILE" ]; then
reload
fi
;;
status)
status --pidfile "$pidfile" --expect-user $USER -- $RUNPATH/$DAEMON
RETVAL=$?
;;
rotate)
cat $rundir/*.pid 2>/dev/null | xargs -r kill -HUP
;;
*)
msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status|rotate}"
RETVAL=1
esac
exit $RETVAL