blob: 45a94a37eabc1e41f388b9f99e933c6068528df9 (
plain)
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
|
#!/sbin/runscript
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/open-vm-tools/files/open-vm-tools.initd,v 1.2 2009/12/20 14:05:43 vadimk Exp $
DND_TMPDIR="/tmp/VMwareDnD"
USER_GROUP="root:vmware"
DND_TMPDIR_PERMS="1777"
GUESTD_BIN="/usr/bin/vmtoolsd"
PIDFILE="/var/run/vmtoolsd.pid"
MOUNTPOINT="/proc/fs/vmblock/mountPoint"
depend() {
before net X
}
start() {
if [ "${VM_DRAG_AND_DROP}" == "yes" ];
then
if ! grep -q -w vmblock /proc/modules;
then
ebegin "Loading vmblock module"
modprobe vmblock
eend $?
sleep 0.25
fi
if [[ ! -d "${DND_TMPDIR}" ]];
then
# einfo "Creating the VM drag and drop directory"
mkdir "${DND_TMPDIR}"
chown "${USER_GROUP}" "${DND_TMPDIR}"
chmod "${DND_TMPDIR_PERMS}" "${DND_TMPDIR}"
fi
# DnD_TMPDIR must exist before vmblock can be mounted
ebegin "Mounting vmblock device"
mount -t vmblock none ${MOUNTPOINT}
eend $?
fi
ebegin "Starting vmtoolsd"
start-stop-daemon --user "${USER_GROUP}" --start --quiet --background --make-pidfile --pidfile "${PIDFILE}" --exec ${GUESTD_BIN}
eend $?
}
stop() {
local ret
if [ "${VM_DRAG_AND_DROP}" == "yes" ];
then
ebegin "Cleaning the contents of ${DND_TMPDIR}"
# First check, whether ${DND_TMPDIR} isn valid... we shouldn't risk deleting the content of ""/*
if [[ ! -z "${DND_TMPDIR}" ]] && [[ "${DND_TMPDIR}" != "/" ]];
then
rm -rf ${DND_TMPDIR}/*
ret=0
else
eerror "Not cleaning up ${DND_TMPDIR}, please check definition of variable"
ret=1
fi
eend $ret
ebegin "Unmounting vmblock device"
if grep -q -w "${MOUNTPOINT}" /proc/mounts;
then
umount ${MOUNTPOINT} 1>&2 > /dev/null
fi
eend 0
fi
ebegin "Stopping vmtoolsd"
start-stop-daemon --stop --quiet --pidfile "${PIDFILE}"
eend $?
}
|