-
Notifications
You must be signed in to change notification settings - Fork 0
/
rc.vmtoolsd
115 lines (102 loc) · 1.97 KB
/
rc.vmtoolsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/sh
#
# /etc/rc.d/rc.vmtoolsd
#
# Start/stop/restart/status of open-vm-tools deamon.
#
# To make open-vm-tools daemon start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.vmtoolsd
#
# Written by Georgi D. Sotirov <gsotirov@gmail.com>
# Bash colors
C_GREEN=$'\e[32;01m'
C_YELLOW=$'\e[33;01m'
C_RED=$'\e[31;01m'
C_NORMAL=$'\e[0m'
SNAME='vmtools daemon'
NAME=vmtoolsd
CMD="/usr/bin/${NAME}"
PIDFILE="/var/run/${NAME}.pid"
CFGFILE="/etc/vmware-tools/tools.conf"
CMD_OPTS="--background=${PIDFILE} --config=${CFGFILE}"
ok() {
echo "${C_GREEN}Done${C_NORMAL}"
}
fail() {
echo "${C_RED}Failure${C_NORMAL}"
}
print_status() {
if [ $? != 0 ]; then
fail
else
ok
fi
}
checkvm() {
# Check whether running inside virtual machine
vmware-checkvm 2>&1 >/dev/null
if [ $? -ne 0 ]; then
echo "Error: Not running in a virtual machine."
exit 1
fi
}
start() {
checkvm
if [ -x $CMD ]; then
if [ ! -e $PIDFILE ]; then
echo -n "Starting ${SNAME} in ${CMD}... "
$CMD $CMD_OPTS
print_status
else
DPID=$(cat $PIDFILE)
echo "Starting ${SNAME}: Already running with PID ${DPID}!"
fi
fi
}
stop() {
if [ -e $PIDFILE ]; then
DPID=$(cat $PIDFILE)
echo -n "Stopping ${SNAME} with PID ${DPID}... "
kill -15 ${DPID}
print_status
# Daemon does not seem to remove PID file, so cleanup
rm -f $PIDFILE
else
echo "Stopping ${SNAME}: Not running!"
fi
}
restart() {
stop
sleep 1
start
}
status() {
if [ -e $PIDFILE ]; then
DPID=$(cat $PIDFILE)
echo "${SNAME} running with PID ${DPID}."
else
STAT=`ps -C $NAME -o pid= | wc -l`
if [ ${STAT} -ge 1 ]; then
echo "${SNAME} is running"
else
echo "${SNAME} is not running"
fi
fi
}
help() {
echo "${SNAME} control"
echo "Usage: $0 start|stop|restart|status"
echo
}
case "$1" in
'start')
start ;;
'stop')
stop ;;
'restart')
restart ;;
'status')
status ;;
*)
help ;;
esac