summaryrefslogtreecommitdiffstats
path: root/testing/open-vm-tools/open-vm-tools.initd
diff options
context:
space:
mode:
Diffstat (limited to 'testing/open-vm-tools/open-vm-tools.initd')
-rw-r--r--testing/open-vm-tools/open-vm-tools.initd76
1 files changed, 76 insertions, 0 deletions
diff --git a/testing/open-vm-tools/open-vm-tools.initd b/testing/open-vm-tools/open-vm-tools.initd
new file mode 100644
index 000000000..ee85c4d29
--- /dev/null
+++ b/testing/open-vm-tools/open-vm-tools.initd
@@ -0,0 +1,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 checkfs fsck 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 --chuid "${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 $?
+}