123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/bin/bash
- NAME=vmtools
- USER=root
- CONFIG="/etc/vmware-tools/tools.conf"
- RUNDIR="/var/run"
- PIDFILE="$RUNDIR/vmtoolsd.pid"
- STARTCMD="/usr/bin/vmtoolsd --config=$CONFIG --background=$PIDFILE"
- STOPCMD=""
- STOPTIMEOUT=300
- function getpid() {
- if [ -z "$PIDFILE" ]; then
- pid="$(pgrep -xfn "$STARTCMD")"
- else
- if [ -f "$PIDFILE" ]; then
- pid=$(< $PIDFILE)
- if [ ! -d /proc/"$pid" ]; then
- echo "$NAME: removing stale pidfile $PIDFILE" >&2
- rm -f "$PIDFILE"
- unset pid
- fi
- fi
- fi
- echo "$pid"
- }
- case $1 in
- start)
- pid=$(getpid)
- install -d -m 755 -o $USER $RUNDIR || exit 1
- if [ -n "$pid" ]; then
- echo "$NAME already running with pid $pid" >&2
- exit 1
- fi
- eval "$STARTCMD"
- ;;
- stop)
- pid=$(getpid)
- if [ -n "$pid" ]; then
- if [ -n "$STOPCMD" ]; then
- eval "$STOPCMD"
- else
- kill "$pid"
- fi
- t=$(printf '%(%s)T' -1)
- tend=$((t+STOPTIMEOUT))
- while [ -d /proc/$pid -a $t -lt $tend ]; do
- sleep 0.5
- t=$(printf '%(%s)T' -1)
- done
- if [ -d /proc/"$pid" ]; then
- echo "$NAME still running with pid $pid" >&2
- else
- [ -n "$PIDFILE" ] && rm -f "$PIDFILE"
- fi
- else
- echo "$NAME is not running" >&2
- fi
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- status)
- pid=$(getpid)
- if [ -n "$pid" ]; then
- echo "$NAME is running with pid $pid"
- else
- echo "$NAME is not running"
- fi
- ;;
- *)
- echo "usage: $0 [start|stop|restart|status]"
- ;;
- esac
|