diff --git a/src/warden-server/bin/wardend b/src/warden-server/bin/wardend index d0170f7c15886cea3f349fcc266eee0de20914d2..2a1c0b7cf93ae8002c9488e83435161101d340a3 100755 --- a/src/warden-server/bin/wardend +++ b/src/warden-server/bin/wardend @@ -31,7 +31,6 @@ # otherwise) arising in any way out of the use of this software, even # if advised of the possibility of such damage. - WARDEN="/opt/warden-server/bin/warden-server.pl" PID_FILE="/var/run/warden-server.pl.pid" LOCK_FILE="/var/lock/warden-server" @@ -47,6 +46,12 @@ if [ -z $WARDEN ]; then exit 1 fi + +usage() { + echo "Usage: $0 [start|stop|status|restart|force-stop]" + exit 1 +} + check_status() { /bin/ps axo pid,comm | grep -q "warden-server*"; RET_VAL=`echo $?` if [ $RET_VAL -eq 0 ]; then @@ -61,64 +66,79 @@ get_pid() { return $PID } -case $1 in - status) - check_status - if [ $STATUS -eq 1 ]; then - get_pid PID - echo "Warden daemon is running (pid $PID)." +warden_start() { + check_status + if [ $STATUS -eq 1 ]; then + get_pid PID + echo "Warden daemon is running (pid $PID)." + else + echo "Starting Warden server daemon ..." + $WARDEN + touch $LOCK_FILE + fi +} + +warden_stop() { + check_status + if [ $STATUS -eq 1 ]; then + echo "Stoping Warden server daemon ..." + if [ -e $PID_FILE ]; then + PID=`cat $PID_FILE` + kill -1 $PID + rm -f $LOCK_FILE else - echo "Warden daemon is NOT running." + echo "Unable to stop Warden server daemon. Try to use: $SCRIPTNAME force-stop" + fi + else + echo "Warden daemon is NOT running." + fi +} + +warden_status() { + check_status + if [ $STATUS -eq 1 ]; then + get_pid PID + echo "Warden daemon is running (pid $PID)." + else + echo "Warden daemon is NOT running." + fi +} + +warden_force_stop() { + check_status + if [ $STATUS -eq 1 ]; then + echo "Force stoping Warden server daemon ..." + get_pid PID + kill -9 $PID + if [ -e $PID_FILE ]; then + rm -f $PID_FILE fi + rm -f $LOCK_FILE + else + echo "Warden daemon is NOT running." + fi +} + +case $1 in + status) + warden_status ;; start) - check_status - if [ $STATUS -eq 1 ]; then - get_pid PID - echo "Warden daemon is running (pid $PID)." - else - echo "Starting Warden server daemon ..." - $WARDEN - touch $LOCK_FILE - fi + warden_start ;; stop) - check_status - if [ $STATUS -eq 1 ]; then - echo "Stoping Warden server daemon ..." - if [ -e $PID_FILE ]; then - PID=`cat $PID_FILE` - kill -1 $PID - rm -f $LOCK_FILE - else - echo "Unable to stop Warden server daemon. Try to use: $SCRIPTNAME force-stop" - fi - else - echo "Warden daemon is NOT running." - fi + warden_stop ;; force-stop) - check_status - if [ $STATUS -eq 1 ]; then - echo "Force stoping Warden server daemon ..." - get_pid PID - kill -9 $PID - if [ -e $PID_FILE ]; then - rm -f $PID_FILE - fi - rm -f $LOCK_FILE - else - echo "Warden daemon is NOT running." - fi + warden_force_stop ;; restart) - $0 stop - $0 start + warden_stop + sleep 1 + warden_start ;; *) - # Display usage of this script - echo "Usage: $0 [start|stop|status|restart|force-stop]" - exit 1 + usage ;; esac