virtualization/app-emulation/open-vm-tools/files/open-vm-tools.initd

77 lines
1.8 KiB
Plaintext

#!/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 $?
}