/etc/vmware-tools/poweroff-vm-default is in open-vm-tools 2:9.4.0-1280544-5ubuntu6.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | #!/bin/sh
##########################################################
# Copyright (C) 2010 VMware, Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation version 2.1 and no later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
##########################################################
##########################################################################
# DO NOT modify this file directly as it will be overwritten the next
# time the VMware Tools are installed.
##########################################################################
#
# statechange.sh
#
# This script is a refactored version of the legacy power scripts (e.g.,
# poweron-vm-default). It expects to be installed in their places --
# in other words, `basename "$0"` might be poweron-vm-default.
#
# Handy reference/shorthand used in this doc/scripts:
# TOOLS_CONFDIR ::= Depends on platform and installation settings. Likely
# "/etc/vmware-tools" or
# "/Library/Application Support/VMware Tools"
# powerOp ::= One of "poweron-vm", "poweroff-vm", "suspend-vm", and
# "resume-vm".
# vmwScriptDir ::= $TOOLS_CONFDIR/scripts/vmware
# userScriptDir ::= $TOOLS_CONFDIR/scripts/${powerOp}-default.d
#
# End users may install scripts of their own under $userScriptDir. They
# are executed in alphabetical order with "$powerOp" as the only argument.
#
# NB: This directory layout remains to preserve backwards compatibility. End
# users are free to write a single script which uses its only parameter
# (${powerOp}) as a discriminator, and then install symlinks to it in each
# of the ${powerOp}-default.d directories.
#
# On power-on and resume, VMware's scripts execute before the end user's. On
# suspend and power-off, the end user's execute before VMware's. (This way,
# VMware stops services only after the user's scripts have finished their
# work, and conversely restores the same services before the user's scripts
# attempt to use them.)
#
# Should any script exit non-zero, only its value will be saved to exitCode.
# (Any further non-zero exits will have no effect on exitCode.) This script
# exits with $exitCode.
#
# XXX Consider using the available/enabled pattern for VMware's scripts.
#
# XXX This should be staged as a single executable whereby the desired
# power operation is passed in as a parameter. (I.e., one would run
# "/path/to/statechange.sh suspend-vm" rather than having to install
# statechange.sh as suspend-vm-default.)
#
echo `date` ": Executing '$0'"
# See above.
TOOLS_CONFDIR=`dirname "$0"`
export TOOLS_CONFDIR
# Pull in subroutines like Panic.
. "$TOOLS_CONFDIR"/statechange.subr
#
# RunScripts --
#
# Executes scripts installed under $scriptDir.
#
# Side effects:
# exitCode may be incremented.
#
RunScripts() {
scriptDir="$1"
if [ -d "$scriptDir" ]; then
for scriptFile in "$scriptDir"/*; do
if [ -x "$scriptFile" ]; then
"$scriptFile" $powerOp
exitCode=`expr $exitCode \| $?`
fi
done
fi
}
#
# main --
#
# Entry point. See comments at top of file for details.
#
# Results:
# Exits with $exitCode.
#
main() {
# This is sanity checked in the case/esac bit below.
powerOp=`basename "$0" | sed 's,-default,,'`
exitCode=0
vmwScriptDir="$TOOLS_CONFDIR/scripts/vmware"
userScriptDir="$TOOLS_CONFDIR/scripts/${powerOp}-default.d"
case "$powerOp" in
poweron-vm|resume-vm)
RunScripts "$vmwScriptDir"
RunScripts "$userScriptDir"
;;
poweroff-vm|suspend-vm)
RunScripts "$userScriptDir"
RunScripts "$vmwScriptDir"
;;
*)
Panic "Invalid argument: $powerOp"
;;
esac
return $exitCode
}
main
|