#!/bin/sh #----------------------------------------------------------------------------# # Hobbit client bootup script. # # # # This invokes hobbitlaunch, which in turn runs the Hobbit client and any # # extensions configured. # # # # Copyright (C) 2005-2006 Henrik Storner # # "status" section (C) Scott Smith 2006 # # # # This program is released under the GNU General Public License (GPL), # # version 2. See the file "COPYING" for details. # # # #----------------------------------------------------------------------------# # # $Id: runclient.sh,v 1.13 2006/07/14 21:25:19 henrik Rel $ # Default settings for this client MACHINEDOTS="`uname -n`" # This systems hostname BBOSTYPE="`uname -s | tr '[A-Z]' '[a-z]'`" # This systems operating system in lowercase BBOSSCRIPT="hobbitclient-$BBOSTYPE.sh" # Commandline mods for the defaults while test "$1" != "" do case "$1" in --hostname=*) MACHINEDOTS="`echo $1 | sed -e 's/--hostname=//'`" ;; --os=*) BBOSTYPE="`echo $1 | sed -e 's/--os=//' | tr '[A-Z]' '[a-z]'`" ;; --class=*) CONFIGCLASS="`echo $1 | sed -e 's/--class=//' | tr '[A-Z]' '[a-z]'`" ;; --help) echo "Usage: $0 [--hostname=CLIENTNAME] [--os=rhel3|linux22] [--class=CLASSNAME] start|stop" exit 0 ;; start) CMD=$1 ;; stop) CMD=$1 ;; restart) CMD=$1 ;; status) CMD=$1 ;; esac shift done OLDDIR="`pwd`" cd "`dirname $0`" HOBBITCLIENTHOME="`pwd`" cd "$OLDDIR" MACHINE="`echo $MACHINEDOTS | sed -e 's/\./,/g'`" export MACHINE MACHINEDOTS BBOSTYPE BBOSSCRIPT HOBBITCLIENTHOME CONFIGCLASS case "$CMD" in "start") if test ! -w $HOBBITCLIENTHOME/logs; then echo "Cannot write to the $HOBBITCLIENTHOME/logs directory" exit 1 fi if test ! -w $HOBBITCLIENTHOME/tmp; then echo "Cannot write to the $HOBBITCLIENTHOME/tmp directory" exit 1 fi if test -s $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid; then echo "Hobbit client already running, re-starting it" $0 stop rm -f $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid fi $HOBBITCLIENTHOME/bin/hobbitlaunch --config=$HOBBITCLIENTHOME/etc/clientlaunch.cfg --log=$HOBBITCLIENTHOME/logs/clientlaunch.log --pidfile=$HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid if test $? -eq 0; then echo "Hobbit client for $BBOSTYPE started on $MACHINEDOTS" else echo "Hobbit client startup failed" fi ;; "stop") if test -s $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid; then kill `cat $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid` echo "Hobbit client stopped" else echo "Hobbit client not running" fi ;; "restart") if test -s $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid; then $0 stop else echo "Hobbit client not running, continuing to start it" fi $0 start ;; "status") if test -s $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid then kill -0 `cat $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid` if test $? -eq 0 then echo "Hobbit client (clientlaunch) running with PID `cat $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid`" else echo "Hobbit client not running, removing stale PID file" rm -f $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid fi else echo "Hobbit client (clientlaunch) does not appear to be running" fi ;; *) echo "Usage: $0 start|stop|restart|status" break; esac exit 0