#!/bin/sh # cmanagerd # # chkconfig: 2345 20 80 # description: Used to start and stop the Connection Manager service # # Script used to start Connection Manager as daemon # The script has currently been tested on Redhat Fedora Core 3, # but should theoretically work on most UNIX like systems # # before running this script make sure $CMANAGER_HOME/bin/cmanager is # executable by the user you want to run Connection Manager as # (chmod +x $CMANAGER_HOME/bin/cmanager) # # This script should be copied into /etc/init.d and linked into # your default runlevel directory. # You can find your default runlevel directory by typing: # grep default /etc/inittab # # Link to the directory like follows # cd /etc/rc<num>.d # ln -s ../init.d/cmanagerd $90cmanagerd # # Set this to tell this script where Connection Manager lives # If this is not set the script will look for /opt/connection_manager, then /usr/local/connection_manager #export CMANAGER_HOME= # If there is a different user you would like to run this script as, # change the following line export CMANAGER_USER=jive # ----------------------------------------------------------------- # If a Connection Manager home variable has not been specified, try to determine it if [ ! $CMANAGER_HOME ]; then if [ -d "/opt/connection_manager" ]; then CMANAGER_HOME="/opt/connection_manager" elif [ -d "/usr/local/connection_manager" ]; then CMANAGER_HOME="/usr/local/connection_manager" else echo "Could not find Connection Manager installation under /opt or /usr/local" echo "Please specify the Connection Manager installation location in environment variable CMANAGER_HOME" exit 1 fi fi function execCommand() { if [ "$1" == "start" ]; then if [ -e /var/run/cmanager.pid ]; then echo "cmanager already running" 2>&1 exit 1 fi OLD_PWD=`pwd` cd $CMANAGER_HOME/bin CMD="./cmanager.sh $1" su -c "$CMD" $CMANAGER_USER & echo "$!" > /var/run/cmanager.pid cd $OLD_PWD elif [ "$1" == "stop" ]; then if [ -e /var/run/cmanager.pid ]; then if ps -p `cat /var/run/cmanager.pid` 2>/dev/null 1>&2; then kill `cat /var/run/cmanager.pid` if [ "$?" == 0 ]; then rm -f /var/run/cmanager.pid else echo "kill failed. try again or kill manually" 1>&2 fi fi rm -f /var/run/cmanager.pid else echo "not running" fi fi } start() { execCommand "start" } stop() { execCommand "stop" } status() { if [ -e /var/run/cmanager.pid ]; then PID=`cat /var/run/cmanager.pid` echo "running pid is $PID" else echo "not running" fi } case "$1" in start) start ;; stop) stop ;; status) status ;; *) echo "Usage $0 {start|stop|status}" exit 1 esac exit 0