[Linux-cluster] CommuniGate as service?

Eric Schneider eschneid at uccs.edu
Fri Jun 15 17:29:20 UTC 2007


I am trying to setup CommuniGate
(http://www.stalker.com/content/default.html) as a cluster service.  I have
everything working except for one thing.  If I stop/kill the process
manually and wait for the status check to move the service nothing happens.


I get "clurgmgrd: [3087]: <info> Executing /etc/init.d/CommuniGate status"
rather than the "clurgmgrd: [3087]: <err> script:httpd-webcal: status of
/etc/init.d/httpd-webcal failed (returned 3)" I get with an apache process.

I had to add the "status" part to /etc/init.d/CommuniGate file myself, but
there is obviously a problem.  I have mucked around with it for a while but
I am just putting it out there if my mistakes are obvious.  

# If you have placed the application folder in a different directory,
#    change the APPLICATION variable
#
# The default location for the CommuniGate Pro "base directory" (a folder
# containing mail accounts, settings, logs, etc.) is /var/CommuniGate
# If you want to use a different location, change the BASEFOLDER variable
#
#
APPLICATION="/opt"
BASEFOLDER="/var/CommuniGate"
SUPPLPARAMS=
PROG="/opt/CommuniGate/CGServer"
#ADDED
pidfile=${PIDFILE-/var/run/CommuniGate.pid}
lockfile=${LOCKFILE-/var/lock/subsys/CommuniGate}
RETVAL=0
#/ADDED
[ -f ${APPLICATION}/CommuniGate/CGServer ] || exit 0

# Some Linux distributions come with the "NPTL" threads library
# that crashes quite often. The following lines are believed to force
# Linux to use the old working threads library.
#
#LD_ASSUME_KERNEL=2.4.1
#export LD_ASSUME_KERNEL

# Source function library.
if [ -f /etc/rc.d/init.d/functions ]; then
  . /etc/rc.d/init.d/functions
elif [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
fi

ulimit -u 2000
ulimit -c 2097151
umask 0

# Custom startup parameters
if [ -f ${BASEFOLDER}/Startup.sh ]; then
  . ${BASEFOLDER}/Startup.sh
fi

case "$1" in
  start)
    if [ -d ${BASEFOLDER} ] ; then
      echo
    else
      echo "Creating the CommuniGate Base Folder..."
      mkdir ${BASEFOLDER}
      chgrp mail ${BASEFOLDER}
      chmod 2770 ${BASEFOLDER}
    fi
    echo -n "Starting CommuniGate Pro"
    ${APPLICATION}/CommuniGate/CGServer \
        --Base ${BASEFOLDER} --Daemon ${SUPPLPARAMS} \
#       --ClusterBackend
#       --ClusterFrontend
    #Comment out
    #touch /var/lock/subsys/CommuniGate
    #ADD
    touch ${pidfile}
    RETVAL=$?
    echo
    [ "$RETVAL = 0" ] && touch ${lockfile}
    #return $RETVAL
    #/ADDED
    ;;
  controller)
    echo "Starting CommuniGate Pro Cluster Controller"
    ${APPLICATION}/CommuniGate/CGServer \
        --Base ${BASEFOLDER} --Daemon ${SUPPLPARAMS} \
        --ClusterController
    touch /var/lock/subsys/CommuniGate
    ;;
  stop)
     if [ -f ${BASEFOLDER}/ProcessID ]; then
       echo "Shutting down the CommuniGate Pro Server"
       kill `cat ${BASEFOLDER}/ProcessID`
       sleep 5
     else
       echo "It looks like the CommuniGate Pro Server is not running"
     fi
     #eric
     rm -f ${pidfile}
     ##Orig
     #rm -f /var/lock/subsys/CommuniGate
     #ADDED
     RETVAL=$?
     echo
     [ "$RETVAL = 3" ] && rm -f ${lockfile} #${pidfile}
     #/ADDED
     ;;
     #ADDED
  status)
     status $PROG
     RETVAL=$?
     ;;
     #/ADDED
  *)
     echo "Usage: $0 [ start | stop | status ]"
     exit 1
esac

exit 0







More information about the Linux-cluster mailing list