65 lines
1.8 KiB
Bash
Executable File
65 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: open-vm-tools
|
|
# Required-Start: $local_fs $remote_fs
|
|
# Required-Stop: $local_fs $remote_fs
|
|
# X-Start-Before:
|
|
# X-Stop-After:
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Description: Runs the open-vm-tools services
|
|
# Short-Description: Runs the open-vm-tools services
|
|
### END INIT INFO
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
exit_if_not_in_vm () {
|
|
if which systemd-detect-virt 1>/dev/null; then
|
|
checktool='systemd-detect-virt'
|
|
else
|
|
checktool='vmware-checkvm'
|
|
fi
|
|
|
|
if ! ${checktool} | grep -iq vmware; then
|
|
echo "open-vm-tools: not starting as this is not a VMware VM"
|
|
exit 0
|
|
fi
|
|
}
|
|
|
|
case "${1}" in
|
|
start)
|
|
# Check if we're running inside VMWare
|
|
exit_if_not_in_vm
|
|
|
|
log_daemon_msg "Starting open-vm daemon" "vmtoolsd"
|
|
start-stop-daemon --start --quiet --pidfile /var/run/vmtoolsd.pid --exec /usr/bin/vmtoolsd --test > /dev/null || exit 1
|
|
start-stop-daemon --start --quiet --pidfile /var/run/vmtoolsd.pid --exec /usr/bin/vmtoolsd -- --background /var/run/vmtoolsd.pid || exit 2
|
|
log_end_msg 0
|
|
;;
|
|
|
|
stop)
|
|
log_daemon_msg "Stopping open-vm guest daemon" "vmtoolsd"
|
|
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /var/run/vmtoolsd.pid --exec /usr/bin/vmtoolsd
|
|
RETURN="${?}"
|
|
[ "${RETURN}" = 2 ] && exit 2
|
|
# Many daemons don't delete their pidfiles when they exit.
|
|
rm -f /var/run/vmtoolsd.pid
|
|
log_end_msg 0
|
|
;;
|
|
|
|
force-reload|restart)
|
|
${0} stop
|
|
${0} start
|
|
;;
|
|
|
|
status)
|
|
status_of_proc -p /var/run/vmtoolsd.pid /usr/bin/vmtoolsd vmtoolsd && exit 0 || exit $?
|
|
;;
|
|
|
|
*)
|
|
log_success_msg "Usage: ${0} {start|stop|restart|force-reload|status}"
|
|
exit 1
|
|
;;
|
|
esac
|