#!/bin/sh
#
# chkconfig: 2345 90 10
# description: VMware Tools Daemon
# processname: vmtoolsd
# pidfile: /var/run/vmtoolsd.pid
# config: /etc/vmware-tools/tools.conf

export PATH="/sbin:/usr/sbin:/bin:/usr/bin"

# Source function library nativa do Endian.
. /etc/rc.d/init.d/functions

[ -f /usr/bin/vmtoolsd ] || exit 0
[ -f /etc/vmware-tools/tools.conf ] || exit 0

RETVAL=0
prog="vmtoolsd"
PIDFILE="/var/run/vmtoolsd.pid"

start() {
    echo -n $"Starting $prog:"

    # Inicia o daemon em background apontando o PID correto
    /usr/bin/vmtoolsd -b $PIDFILE >/dev/null 2>&1
    RETVAL=$?
    
    sleep 0.5
    # Valida se o processo realmente ficou ativo na memória
    if [ $RETVAL -eq 0 ] && [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE) 2>/dev/null; then
        echo_success
        echo
        touch /var/lock/subsys/vmtoolsd
        return 0
    else
        echo_failure
        echo
        return 1
    fi
}

stop() {
    echo -n $"Shutting down $prog:"
    killproc vmtoolsd
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/vmtoolsd $PIDFILE
    return $RETVAL
}

condstop() {
    status vmtoolsd &>/dev/null && stop
}

restart() {
    stop
    start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  condstop)
    condstop
    ;;
  condrestart)
    status vmtoolsd &>/dev/null && restart
    RETVAL=$?
    ;;
  status)
    status vmtoolsd
    RETVAL=$?
    ;;
  restart)
    restart
    RETVAL=$?
    ;;
  reload)
    killproc vmtoolsd -HUP
    RETVAL=$?
    ;;
  *)
    echo "Usage: vmtoolsd {start|stop|status|restart|condrestart|condstop|reload}"
    exit 1
esac

exit $RETVAL