I think this ought to be wikified...
--
James Pulver
Information Technology Area Supervisor
LEPP Computer Group
Cornell University



eburrows wrote, On 5/19/2009 3:09 PM:
> vincem,
> In order to start multiple monitors on a single data collector host, I 
> modified the start/stop scripts in $ZENHOME/bin, as below. In order to get 
> this to work, you have to:
> 
> 1. Create a file in $ZENHOME/etc named something like 
> zencommand-something.conf. 
> 2. Ensure you set the logpath variable in the config file to something 
> unique, and create the directory, if it does not exist.
> 3. Ensure you set the monitor variable in the config file to something 
> unique, and create this "monitor" object in the Zenoss UI.
> 4. Overwrite the $ZENHOME/bin/zencommand (or zenperfsnmp, etc) with below, 
> and set the MULTISTARTPREFIX and MULTISTARTSLEEP variables appropriately.
> 
> ---------------------------------------------------------------------------------------------------
> #! /usr/bin/env bash
> #############################################################################
> # This program is part of Zenoss Core, an open source monitoring platform.
> # Copyright (C) 2007, Zenoss Inc.
> #
> # This program is free software; you can redistribute it and/or modify it
> # under the terms of the GNU General Public License version 2 as published by
> # the Free Software Foundation.
> #
> # For complete information please visit: http://www.zenoss.com/oss/
> #############################################################################
> 
> # zenperfsnmp, zencommand, zenping, etc.
> MULTISTARTPREFIX=zencommand
> 
> # Sleep between starts, helps reduce load on zeodb
> MULTISTARTSLEEP=60
> 
> . $ZENHOME/bin/zenfunctions
> 
> start() {
>     if running; then
>         echo is already running
>     else
>         echo starting...
>         eval $SUDO $PYTHON $PRGHOME/$PRGNAME --configfile $CFGFILE \
>             --cycle --daemon '"$@"'
>         ps x | grep $CFGFILE | grep -v grep | awk '{ print $1; }' > $PIDFILE
>     fi
> }
> 
> generic() {
>     case "$CMD" in
>       run)
>             run "$@"
>             ;;
>       start)
>             start "$@"
>             ;;
>       stop)
>             stop
>             ;;
>       restart)
>             restart "$@"
>             ;;
>       status)
>             status
>             ;;
>       help)
>             help
>             ;;
>       genconf)
>             genconf
>             ;;
>       *)
>             cat - <<HELP
> Usage: $0 {run|start|stop|restart|status|help|genconf} [options]
> 
>   where the commands are:
> 
>     run     - start the program but don't put it in the background.
>               NB: This mode is good for debugging.
> 
>     start   - start the program in daemon mode -- running in the background,
>               detached from the shell
> 
>     stop    - stop the program
> 
>     restart - stop and then start the program
>               NB: Sometimes the start command will run before the daemon
>                   has terminated.  If this happens just re-run the command.
> 
>     status  - Check the status of a daemon.  This will print the current
>               process nuber if it is running.
> 
>     help    - display the options available for the daemon
> 
>     genconf - create an example configuration file with default settings
> 
> HELP
>             exit 1
>     esac
> }
> 
> for conffile in $ZENHOME/etc/$MULTISTARTPREFIX*.conf; do
>     PRGHOME=$ZENHOME/Products/ZenRRD
>     PRGNAME=$MULTISTARTPREFIX.py
>     CFGFILE=$conffile
>     PIDFILE=$VARDIR/`basename $conffile | sed 's/.conf/.py/'`.pid
>     DISPNAME=`basename $conffile | sed 's/.conf//'`
> 
>     echo -n $DISPNAME ''
> 
>     generic "$@"
> 
>     if [ "$CMD" == "start" ]; then
>       sleep $MULTISTARTSLEEP
>     fi
> 
> done
> 
> ---------------------------------------------------------------------------------------------------
> 
> 
> You can see that at the bottom of the script, where the default start/stop 
> scripts just call generic "$@", this script looks for config files starting 
> with $MULTISTARTPREFIX, and calls generic "$@" for each of them. The script 
> also redefines generic() and start() to prevent the script from exiting after 
> starting just one daemon.
> 
> -Erik
> 
> 
> 
> 
> -------------------- m2f --------------------
> 
> Read this topic online here:
> http://forums.zenoss.com/viewtopic.php?p=35024#35024
> 
> -------------------- m2f --------------------
> 
> 
> 
> _______________________________________________
> zenoss-users mailing list
> [email protected]
> http://lists.zenoss.org/mailman/listinfo/zenoss-users
_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users

Reply via email to