#!/bin/sh ########################################################################## # Copyright 2001-2008 VMware, Inc. All rights reserved. -- VMware Confidential ########################################################################## ########################################################################## # DO NOT modify this file directly as it will be overwritten the next # time the VMware Tools are installed. ########################################################################## echo `date` ": Executing '$0'" echo find_networking_script() { local script="error" for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do if [ -d "$dir/rc0.d" ] && [ -d "$dir/rc1.d" ] && [ -d "$dir/rc2.d" ] && [ -d "$dir/rc3.d" ] && [ -d "$dir/rc4.d" ] && [ -d "$dir/rc5.d" ] && [ -d "$dir/rc6.d" ]; then # Now find the appropriate networking script. if [ -d "$dir/init.d" ]; then if [ -x "$dir/init.d/network" ]; then script="$dir/init.d/network" elif [ -x "$dir/init.d/networking" ]; then script="$dir/init.d/networking" fi else if [ -x "$dir/network" ]; then script="$dir/network" elif [ -x "$dir/networking" ]; then script="$dir/networking" fi fi fi done echo "$script" } save_active_NIC_list() { ifconfig_path=`which ifconfig 2>/dev/null` if [ $? ]; then "$ifconfig_path" | grep '^[^[:space:]]' | awk '{ print $1 }' > /var/run/vmware-active-nics fi } # # tranquilizeNetworkManager -- # # Put the NetworkManager daemon to sleep (maybe). # # See http://projects.gnome.org/NetworkManager/developers/spec.html . # # Results: # Sleep(true) request is sent to the NetworkManager D-Bus interface. # # Side effects: # None. # tranquilizeNetworkManager() { # `which' may be a bit noisy, so we'll shush it. dbusSend=`which dbus-send 2>/dev/null` if [ $? -eq 0 ]; then # NetworkManager 0.6 $dbusSend --system --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.sleep # NetworkManager 0.7.0 $dbusSend --system --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.Sleep boolean:true fi } # # main # scriptsdir="`dirname $0`/scripts/`basename $0`.d" if [ -d "$scriptsdir" ]; then for scriptfile in "$scriptsdir"/*; do [ -x "$scriptfile" ] && "$scriptfile" suspend-vm done fi save_active_NIC_list network=`find_networking_script` if [ "$network" != "error" ]; then "$network" stop # If the network is down, this may fail but that's not a good reason # to prevent the suspend. status=0 else echo "networking script not found" status=1 fi tranquilizeNetworkManager exit "$status"