Pages: [1]   Go Down
Author Topic: the changes/tweaks Imade to Pandora_server 1.2  (Read 225 times)
0 Members and 1 Guest are viewing this topic.
daggett
Sr. Member
****

Karma: 0
Offline Offline

Posts: 109


View Profile
« on: December 06, 2006, 04:01:29 PM »

I just wanted to put here all the changes I made to pandora FMS 1.2 to make them available to all to use/see/criticise/modify...

bin/pandora_server.pl :
use threads; (deprecated)
use threads::shared; (deprecated)
replaced by
use forks;
use forks::shared;

pandora_server :
[code:1]#!/bin/sh
# Pandora Data Server startup script
# Sancho Lerena, <slerena>
# Linux Version (generic)
# v1.2 (Ene/2006)

# Configurable path and filenames
PANDORA_HOME="/opt/pandora/pandora_server"
PANDORA_SERVER_PID="$PANDORA_HOME/var/pandora_server.pid"

# Main script

if [ ! -f $PANDORA_HOME/bin/pandora_server.pl ]
then
        echo "Pandora Data Server not found, please check setup and read manual"
        exit
fi

case "$1" in
  start)
        OLD_PATH="`pwd`"
        if [ -f $PANDORA_SERVER_PID ]
        then
                echo "Pandora Data Server is currently running on this machine. Aborting now..."
                exit
        fi
        # we check if we have instances of the server already running
        NUMPID=`ps aux | grep 'pandora_server.pl' | grep -v grep | wc -l`
        if [ $NUMPID -gt 0 ]
        then
                echo Warning! It seems that there are some instances of pandora server already running
                echo Starting anyway... but you may have some problems.
        fi
        # we change to the pandora server bin directory
        cd $PANDORA_HOME/bin
        ./pandora_server.pl $PANDORA_HOME -D
        # the server may take some time to start, so we need to pause before collecting PIDs
        sleep 2
        # collecting first line (first PID with head -1) then the second (tail -1). It doesn't matter if MYPID==MYPID2
        MYPID=`ps aux | grep 'pandora_server.pl' | grep -v grep | tail -2 | head -1 | awk '{print $2}'`
        MYPID2=`ps aux | grep 'pandora_server.pl' | grep -v grep | tail -1 | awk '{print $2}'`
        if [ ! -z "$MYPID" ]
        then
                # there is at least one PID, so server is running, so put PID in the .pid file and create this file
                echo $MYPID > $PANDORA_SERVER_PID
                echo $MYPID2 >> $PANDORA_SERVER_PID
                echo "Pandora Data Server is now running with PID $MYPID and $MYPID2"
        else
                # no PID collected, the server is not running
                echo "Cannot start Pandora Data Server. Aborted"
        fi
        cd "$OLD_PATH"
        ;;
  stop)
        if [ -f $PANDORA_SERVER_PID ]
        then
           echo "Stopping Pandora Data Server"
           # fetching PID from the .pid file it doesn't matter if PID_1==PID_2
           PID_1=`cat $PANDORA_SERVER_PID | head -1`
           PID_2=`cat $PANDORA_SERVER_PID | tail -1`
           # we check if PID_1 and PID_2 are still existing, if yes then we kill them
           PIDS=`ps -F -p $PID_1 $PID_2 | grep -v grep | grep 'pandora_server.pl'| awk '{print $2}'`
           if [ ! -z "$PIDS" ]
           then
               kill $PIDS 2> /dev/null > /dev/null
           fi
           echo "Stopping PID: " $PIDS
           # we check if our PIDs were killed or not, we grep pandora_server. because of zombies loosing their "pl"
           PIDS=`ps -F -p $PID_1 $PID_2 | grep -v grep | grep 'pandora_server.'| awk '{print $2}'`
           if [ ! -z "$PIDS"]
           then
                echo "Following PID didn't stop, sending signal 9 to " $PIDS
                kill -9 $PIDS 2> /dev/null > /dev/null
           fi
           rm -f $PANDORA_SERVER_PID
           echo Server Stopped
        else
          echo "Pandora Data Server is not running, cannot stop it."
        fi
        ;;
  force-reload|restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: pandora_network {start|stop|restart}"
        exit 1
esac
[/code]
« Last Edit: January 01, 1970, 01:00:00 AM by daggett » Logged

Pages: [1]   Go Up
Print
 
Jump to:  


SourceForge.net Logo  This site is monitored by Pandora FMS   ArticaST