]> git.pld-linux.org Git - packages/open-vm-tools.git/blame - open-vm-tools-init
- removed `set -x' from init script
[packages/open-vm-tools.git] / open-vm-tools-init
CommitLineData
98be3241 1#!/bin/sh
2#
3# open-vm-tools Helper scripts for open-vm-tools
4#
5# chkconfig: 345 90 20
6#
7# description: Helper scripts for open-vm-tools
8#
9# $Id$
10
11# Source function library.
12. /etc/rc.d/init.d/functions
13
14RETVAL=0
9aed8438 15kver=`uname -r`
98be3241 16
71a75d2b 17is_ESX_running() {
18 if [ ! -f /usr/bin/vmware-checkvm ] ; then
38a7a2ff
ER
19 echo no
20 return
71a75d2b 21 fi
22
23 if /usr/bin/vmware-checkvm -p | grep -q ESX; then
38a7a2ff 24 echo yes
71a75d2b 25 else
38a7a2ff 26 echo no
71a75d2b 27 fi
28}
29
415b0c7c 30# return true if $module exists for current kernel
98be3241 31module_exist() {
415b0c7c
ER
32 local module=$1
33 test -f /lib/modules/$kver/misc/$module.ko*
98be3241 34}
35
36start_vmxnet() {
37 # Check if the service is already running?
38a7a2ff 38 if [ -f /var/lock/subsys/open-vm-tools-vmxnet ]; then
98be3241 39 msg_already_running "Open Virtual Machine vmxnet script"
38a7a2ff
ER
40 return
41 fi
42
43 msg_starting "Open Virtual Machine vmxnet script"
44 busy
415b0c7c 45 if ! module_exist vmxnet; then
38a7a2ff
ER
46 fail
47 echo -e "\tCan't find vmxnet module"
48 RETVAL=1
49 return
98be3241 50 fi
38a7a2ff
ER
51
52 for ethif in `ifconfig -a | grep ^eth | cut -d' ' -f1`; do
53 /sbin/ethtool -K $ethif tso on > /dev/null 2>&1
54 done
55 ok
56 touch /var/lock/subsys/open-vm-tools-vmxnet
98be3241 57}
58
59stop_vmxnet() {
38a7a2ff 60 if [ ! -f /var/lock/subsys/open-vm-tools-vmxnet ]; then
98be3241 61 msg_not_running "Open Virtual Machine vmxnet script"
38a7a2ff 62 return
98be3241 63 fi
38a7a2ff
ER
64
65 msg_stopping "Open Virtual Machine vmxnet script"
66 busy
67 rm -f /var/lock/subsys/open-vm-tools-vmxnet
68 ok
98be3241 69}
70
71start_vmblock() {
72 # vmblock is not required and unsupported on ESX so first check
73 # if it's installed then try to use
415b0c7c 74 module_exist vmblock || return
98be3241 75
76 # Check if the service is already running?
38a7a2ff 77 if [ -f /var/lock/subsys/open-vm-tools-vmblock ]; then
98be3241 78 msg_already_running "Open Virtual Machine vmblock script"
38a7a2ff 79 return
98be3241 80 fi
38a7a2ff
ER
81
82 _modprobe single vmblock
83 msg_starting "Open Virtual Machine vmblock script"
84 busy
85 mkdir -p /tmp/VMwareDnD
86 chmod 1777 /tmp/VMwareDnD
87 mount -t vmblock none /proc/fs/vmblock/mountPoint
88 RETVAL=$?
89 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/open-vm-tools-vmblock && ok && return
90 fail
98be3241 91}
92
93stop_vmblock() {
415b0c7c 94 module_exist vmblock || return
98be3241 95
38a7a2ff 96 if [ ! -f /var/lock/subsys/open-vm-tools-vmblock ]; then
98be3241 97 msg_not_running "Open Virtual Machine vmblock script"
38a7a2ff 98 return
98be3241 99 fi
38a7a2ff
ER
100
101 msg_stopping "Open Virtual Machine vmblock script"
102 busy
103 umount /proc/fs/vmblock/mountPoint
104 RETVAL=$?
105 [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/open-vm-tools-vmblock && ok && return
106 fail
98be3241 107}
108
109start_vmhgfs() {
110 # vmhgfs is not required and usupported on ESX so first check
111 # if it's installed then try to use
415b0c7c 112 module_exist vmhgfs || return
98be3241 113
114 # Check if the service is already running?
38a7a2ff 115 if [ -f /var/lock/subsys/open-vm-tools-vmhgfs ]; then
98be3241 116 msg_already_running "Open Virtual Machine vmhgfs script"
38a7a2ff 117 return
98be3241 118 fi
38a7a2ff
ER
119
120 _modprobe single vmhgfs
121 msg_starting "Open Virtual Machine vmhgfs script"
122 busy
123 mkdir -p /mnt/hgfs
124 mount -t vmhgfs .host:/ /mnt/hgfs
125 RETVAL=$?
126 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/open-vm-tools-vmhgfs && ok && return
127 fail
98be3241 128}
129
130stop_vmhgfs() {
415b0c7c 131 module_exist vmhgfs || return
98be3241 132
38a7a2ff 133 if [ ! -f /var/lock/subsys/open-vm-tools-vmhgfs ]; then
98be3241 134 msg_not_running "Open Virtual Machine vmhgfs script"
38a7a2ff 135 return
98be3241 136 fi
38a7a2ff
ER
137
138 msg_stopping "Open Virtual Machine vmhgfs script"
139 busy
140 umount /mnt/hgfs
141 RETVAL=$?
142 [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/open-vm-tools-vmhgfs && ok && return
143 fail
98be3241 144}
145
146start_vmsync() {
147 # Check if the service is already running?
38a7a2ff 148 if [ -f /var/lock/subsys/open-vm-tools-vmsync ]; then
98be3241 149 msg_already_running "Open Virtual Machine vmsync script"
38a7a2ff 150 return
98be3241 151 fi
38a7a2ff
ER
152
153 _modprobe single vmsync
154 msg_starting "Open Virtual Machine vmsync script"
155 daemon /usr/bin/vmtoolsd --background /var/run/vmtoolsd.pid
156 RETVAL=$?
157 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/open-vm-tools-vmsync
98be3241 158}
159
160stop_vmsync() {
38a7a2ff 161 if [ ! -f /var/lock/subsys/open-vm-tools-vmsync ]; then
98be3241 162 msg_not_running "Open Virtual Machine vmsync script"
38a7a2ff 163 return
98be3241 164 fi
38a7a2ff
ER
165
166 msg_stopping "Open Virtual Machine vmsync script"
167 killproc --pidfile vmtoolsd.pid vmtoolsd
168 rm -f /var/lock/subsys/open-vm-tools-vmsync
98be3241 169}
170
171start() {
172 start_vmxnet
71a75d2b 173 if is_no `is_ESX_running`; then
174 start_vmblock
175 start_vmhgfs
176 fi
ae69fefb 177 _modprobe single vmware_vmmemctl
98be3241 178 _modprobe single vmci
179 _modprobe single vsock
224f2e73 180 _modprobe single vmw_pvscsi
98be3241 181 start_vmsync
182}
183
184stop() {
185 stop_vmxnet
186 stop_vmblock
187 stop_vmhgfs
188 stop_vmsync
189}
190
191# See how we were called.
192case "$1" in
193 start)
194 start
195 ;;
196 stop)
38a7a2ff 197 stop
98be3241 198 ;;
199 restart)
38a7a2ff
ER
200 stop
201 start
98be3241 202 ;;
203 *)
204 msg_usage "$0 {start|stop|restart}"
205 exit 3
206esac
207
208exit $RETVAL
This page took 0.131223 seconds and 4 git commands to generate.