#!/bin/bash
# Program
#          Program that will start and kill Supermicro thin-agent service
# History:
# 2014/1/23  billw
# chkconfig: 345 99 01
# description: Supermicro Thin-Agent service 

### BEGIN INIT INFO
# Provides:           tas
# Required-Start:     $remote_fs $syslog
# Required-Stop:      $remote_fs $syslog
# Should-Start: 
# Should-Stop: 
# Default-Start:      2 3 4 5
# Default-Stop:       0 1 6
# Short-Description:  tas 
# Description:        tas script
### END INIT INFO

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
prog="Thin-Agent Service"
TAS_BIN="/opt/supermicro/IPMITAS"
TAS_WATCHDOG="/opt/supermicro/watchtas"

loadIpmiDriver() {
    modprobe ipmi_msghandler 2>/dev/null; modprobe ipmi_devintf 2>/dev/null; modprobe ipmi_si 2>/dev/null

}
#load ipmi driver every time when start
loadIpmiDriver

#parameter size is 1
[ "$#" -gt 1 ] || [ "$#" -lt 1 ] && echo "parameter length error" && exit 0

# Check that we are root ... so non-root users stop here
test $EUID = 0  ||  exit 4

RETVAL=0;

fail() {
    echo $prog "start fail"
    exit 1
}

start() {
echo  "Starting $prog"
$TAS_BIN -agent start-service
RETVAL=$?
[ $RETVAL == 0 ] || fail
$TAS_WATCHDOG 1 &
return $RETVAL
}

stop() {
echo  "Stopping $prog"
$TAS_BIN -agent stop-service
pkill -9 -x watchtas
sleep 6

if pgrep -f IPMITAS > /dev/null ; then
    pkill -9 -x IPMITAS
fi
}

pause() {
echo "Pause $prog"
$TAS_BIN -agent pause-service
}

resume() {
echo "Resume $prog"
$TAS_BIN -agent resume-service
}

restart() {
echo "Restart $prog"
sleep 1
stop
sleep 3
start
}

version() {
$TAS_BIN -agent version
}

status() {
$TAS_BIN -agent status
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  pause)
    pause
    ;;
  resume)
    resume
  ;;
  restart)
    restart  
    ;;
  version)
    version
    ;;
  status)
    status
    ;;
  *)
    echo $"Usage: $0 {start|stop|pause|resume|restart|version|status}"
    RETVAL=3
    ;;
esac
exit $RETVAL 
