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