diff options
-rw-r--r-- | os-plugins/plugins/vmware/files/README | 5 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/files/runvmware-player-v1 (renamed from os-plugins/plugins/vmware/files/runvmware-v2) | 0 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/files/runvmware-player-v2 | 559 | ||||
-rwxr-xr-x | os-plugins/plugins/vmware/files/vmware-init | 115 |
4 files changed, 562 insertions, 117 deletions
diff --git a/os-plugins/plugins/vmware/files/README b/os-plugins/plugins/vmware/files/README index b5610485..ba51b1a6 100644 --- a/os-plugins/plugins/vmware/files/README +++ b/os-plugins/plugins/vmware/files/README @@ -16,8 +16,9 @@ Files This nvram supports a second Floppy drive. Helpfull if you want to get some data from linux to your Windows VirtualMachine (like Scanner-IP or Userinformation) -- runvmware-v2 - The main script which will configure and start the Virtual Machine +- runvmware-player-v1 and runvmware-player-v2 + The main script which will configure and start the Virtual Machine. + Two different, depending on the player-version - Vorlage_VMwareImageAdministrator.xml This example files shows which VMware features are configureable for each virtual machine. diff --git a/os-plugins/plugins/vmware/files/runvmware-v2 b/os-plugins/plugins/vmware/files/runvmware-player-v1 index eaa35b0e..eaa35b0e 100644 --- a/os-plugins/plugins/vmware/files/runvmware-v2 +++ b/os-plugins/plugins/vmware/files/runvmware-player-v1 diff --git a/os-plugins/plugins/vmware/files/runvmware-player-v2 b/os-plugins/plugins/vmware/files/runvmware-player-v2 new file mode 100644 index 00000000..eaa35b0e --- /dev/null +++ b/os-plugins/plugins/vmware/files/runvmware-player-v2 @@ -0,0 +1,559 @@ +#!/bin/bash +# +# Description: Script for preparing VMware environment Diskless +# X Stations and interactive session chooser (v4) +# +# Author(s): see project authors file +# letzte Ă„nderung Volker, 17 .Feb 2008 +# Copyright: (c) 2003 - 2008 - RZ Universitaet Freiburg +# +# Version: 0.16.611 +# +################################################################################ + + +################################################################################ +## +## Put $HOME to another location +## +################################################################################ + +# We need to change $HOME so it saves everything to /tmp +#export HOME="/tmp/${USER}" +# following mkdir we have now twice in this script... but better twice +# as not seperated. Now its no problem to delete this +# "Put $HOME to another location" section later +#mkdir /tmp/${USER} +#ln -s /home/${USER}/.Xauthority /tmp/${USER}/.Xauthority + + + +### VARIABLES SECTION ########################################################## +## +## declaration of default variables +## +################################################################################ + +## "static" variables only changed within the script + +# The PATH... +export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin" + +# Last two values for MAC address +mac= + +# memory information. permem is value to calculate needed memory +mem= +totalmem= +permem=66 + +# virtual fd/cd/dvd and drive devices, floppy b: for configuration +#floppya is always false, if we have a floppy device or not isn't +#important. +floppya="FALSE" +floppyb="TRUE" +floppybname="/etc/vmware/loopimg/fd.img" +cdr_1="FALSE" +cdr_2="FALSE" +# ide is expected default, test for the virtual disk image type should +# be done while creating the runscripts ... +ide="TRUE" +scsi="FALSE" +hddrv="lsilogic" + +# Displayresolution needed for vmware.config +hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$") +xres=$(echo "${hostres}" | awk '{print $3}') +yres=$(echo "${hostres}" | awk '{print $7}') + +# VMplayer buildversion +vmbuild= + +# VMware start options +#-X = fullscreen +vmopt="-X" + +# temporary disk space for logs, etc... +# use /tmp/vmware/${USER} if /tmp sits on NFS import +export tmpdir=/tmp/${USER} + +# configfile +confile="${tmpdir}/runvmware.conf" + +# users vmware config folder +vmhome="${HOME}/.vmware" +#vmhome="/tmp/${USER}/.vmware" + + +# unknow variables needed vor vmwplayer configuration +confver=8 +hver=4 + +# set hostname: using original hostname and adding string "-vm" +# variable isn't used anywhere in this script. but still works (however) +# TODO: Test it commented out +hostname="VM-${HOST}" + +# Folder of VirtualMachine Images +vmdir="/var/lib/vmware" + +# special Variables, persistence vmware? +#TODO: do we really need it? Should be everywhere nonpersistent +np="independent-nonpersistent" + +######## +## TODO: everything clean till here +######## + +# File if its a link. Stupid crap +#TODO: perhaps we don't need it +rightsfile= +#TODO: don't know what it is for. check later +noimage=0 +# image checking variable +filecheck= + + +## Image depending variables. This values will be changed by the script + +# vmware image file +#imagename="CHANGEIT" +imagename="$1" +diskfile="${vmdir}/${imagename}" + +#TODO: check for a faster way, perhaps we should put this into XML +# oh - yeah!! Why not do it on the SERVER??? It has enough power and has +# to do it once and not during every start on a client :) +#grepping every file could take much (network) resources. And if its +#an IDE Image, but has somewhere the string ddb.adapterType stuff can +#become screwed +# NOOOOOOO - We do not check on every start on every client!!! +# check if IDE or SCSI +#hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}') +#if [ "${hddrv}" = "ide" ]; then +# ide="TRUE" +# scsi="FALSE" +#elif [ "${hddrv}" = "lsilogic" ]; then +# ide="FALSE" +# scsi="TRUE" +#elif [ "${hddrv}" = "buslogic" ]; then +# ide="FALSE" +# scsi="TRUE" +#fi + +# define name for VMware window +#displayname="CHANGEIT" +displayname="$2" + +# Definition of the client system +#vmostype="CHANGEIT" +vmostype="$3" + +# Definition of the client system +#network="CHANGEIT" +network="$4" + + +# command line variables +# start with this this default commmand line options + extra +# TODO: defaults laut datei --include /var/lib/vmware/tmpl/winconfig +# --include <includefile> include code right before program start + +# Should we debug? Hell yes, we should always debug! +debug=0 + +#TODO: Bad done... we should do this another way later +last_changes=$(head -n 15 $0 | grep "@" | awk -F ", " '{print $2}' \ + | awk -F "-" '{print $3" "$2" "$1}' | sort -bfnr \ + | awk '{print $3"-"$2"-"$1}' | grep -m 1 [0-9]) +version=$(head -n 15 $0 | grep "# Version: " | awk '{print $3}') + +############# +## TODO: End of uncleaned area +############# + + + + + + +### FUNCTION SECTION ########################################################### +## +## In this script used functions +## +################################################################################ + +### write runvmware.conf ####################################################### +#TODO: only not yet checked function +filecheck () +{ + filecheck=$(LANG=us ls -lh ${diskfile} 2>&1) + writelog "Filecheck:\n${filecheck}\n" + #TODO: don't understand the sence in it + noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l) + rightsfile=${diskfile} + + # check if link + # TODO: mistake with 2nd rightsfile if its in another directory? + if [ -L "${diskfile}" ]; then + # take link target + rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}') + rightsfile=${vmdir}/${rightsfile} + filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1) + fi + + # does file exist + if [ "${noimage}" -ge "1" ]; then + writelog "Vmware Image Problem:\c" + writelog "\tThe image you've specified doesn't exist." + writelog "Filecheck says:\c" + writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory" + writelog "Hint:\c" + writelog "\t\t\tCompare spelling of the image with your options.\n" + exit 1 + fi + + # readable? + if ! [ -r "${diskfile}" >/dev/null 2>&1 \ + -o -r "${diskfile}" >/dev/null 2>&1 ]; then + writelog "Vmware Image Problem:\c" + writelog "\tThe image you've specified has wrong rights." + writelog "Filecheck says:\t\t$(echo ${filecheck} \ + | awk '{print $1" "$3" "$4}') ${rightsfile}" + writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n" + exit 1 + fi + + # writable (for persistent-mode)? + if ! [ -w "${diskfile}" >/dev/null 2>&1 \ + -o -w "${diskfile}" >/dev/null 2>&1 ] \ + && [ "${np}" = "independent-persistent" ]; then + writelog "Vmware Image Problem:\c" + writelog "\tThe image you've specified has wrong rights." + writelog "Filecheck says:\t\t$(echo ${filecheck} \ + | awk '{print $1" "$3" "$4}') ${rightsfile}" + writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n" + exit 1 + fi +} + + +### write runvmware.conf ####################################################### +runvmwareconfheader () +{ + echo " + ############################################################################## + ###### This configuration file was generated by 'runvmware', ###### + ###### dont use it for your own configurations - it will be overwritten ###### + ###### ###### + + ###### identity ############################################################## + displayName = \"${displayname}\" + guestOS = \"${vmostype}\" + config.version = \"${confver}\" + virtualHW.version = \"${hver}\" + + memsize = \"${mem}\" + numvcpus = \"1\" + + ###### ide-disks ############################################################# + ide0:0.mode = \"${np}\" + ide0:0.present = \"${ide}\" + ide0:0.fileName = \"${diskfile}\" + + ide1:0.present = \"${cdr_1}\" + ide1:0.autodetect = \"TRUE\" + ide1:0.fileName = \"auto detect\" + ide1:0.deviceType = \"cdrom-raw\" + + ide1:1.present = \"${cdr_2}\" + ide1:1.autodetect = \"TRUE\" + ide1:1.fileName = \"auto detect\" + ide1:1.deviceType = \"cdrom-raw\" + + ###### scsi-disks ############################################################ + scsi0.present = \"${scsi}\" + scsi0.virtualDev = \"lsilogic\" + scsi0:0.mode = \"${np}\" + scsi0:0.present = \"${scsi}\" + scsi0:0.fileName = \"${diskfile}\" + + ###### nics ################################################################## + ethernet0.present = \"TRUE\" + ethernet0.addressType = \"static\" + ethernet0.connectionType = \"${network}\" + ethernet0.address = \"00:50:56:0D:${mac}\" + + ###### sound ################################################################# + sound.present = \"TRUE\" + sound.virtualDev = \"es1371\" + + ###### usb ################################################################### + usb.present = \"TRUE\" + usb.generic.autoconnect = \"TRUE\" + + ###### floppies ############################################################## + floppy0.present = \"${floppya}\" + floppy0.fileName = \"auto detect\" + + # we need floppy b: this for our windows client configuration + floppy1.present = \"${floppyb}\" + floppy1.fileType = \"file\" + floppy1.fileName = \"${floppybname}\" + floppy1.startConnected = \"TRUE\" + + ###### ports ################################################################# + parallel0.present = \"FALSE\" + + serial0.present = \"FALSE\" + + ###### shared folders ######################################################## + sharedFolder0.present = \"TRUE\" + sharedFolder0.enabled = \"TRUE\" + sharedFolder0.expiration = \"never\" + sharedFolder0.guestName = \"Home\" + sharedFolder0.hostPath = \"${HOME}\" + sharedFolder0.readAccess = \"TRUE\" + sharedFolder0.writeAccess = \"TRUE\" + sharedFolder.maxNum = \"1\" + + ###### misc ################################################################## + tmpDirectory = \"${tmpdir}\" + mainMem.useNamedFile = \"TRUE\" + snapshot.disabled = \"TRUE\" + tools.syncTime = \"TRUE\" + # use redoLogDir = \"/dev/shm\" if sitting on NFS import + redoLogDir = \"${tmpdir}\" + hints.hideAll = \"TRUE\" + logging = \"FALSE\" + isolation.tools.hgfs.disable = \"FALSE\" + isolation.tools.dnd.disable = \"TRUE\" + isolation.tools.copy.enable = \"TRUE\" + isolation.tools.paste.enabled = \"TRUE\" + gui.restricted = \"TRUE\" + pref.hotkey.shift = \"TRUE\" + pref.hotkey.control = \"TRUE\" + pref.hotkey.alt = \"TRUE\" + svga.maxWidth = \"${xres}\" + svga.maxHeight = \"${yres}\" + " \ + >${confile} + + # set the appropriate permissions for the vmware config file + chmod u+rwx ${confile} >/dev/null 2>&1 +} + + +### creates user configurationfile in ${vmhome} ################################ +preferencesheader () +{ + echo " + ############################################################################## + ###### This configuration file was generated by 'runvmware', ###### + ###### dont use it for your own configurations - it will be overwritten ###### + ###### ###### + ################################## Wichtig! ################################## + ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ###### + ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ###### + ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ###### + ###### tmpDirectory = /nfs-viel-platz und darin wird dann vmware-\$user ###### + ###### angelegt. ###### + + # DEBUG: some versions accept it only upper or lowercase... which one? + # The following 4 could also be uppercase + hints.hideAll = \"true\" + pref.exchangeSelections = \"true\" + pref.hotkey.shift = \"true\" + pref.tip.startup = \"false\" + pref.vmplayer.exit.vmAction = \"poweroff\" + # DEBUG: some versions accept it only upper or lowercase... which one? + # The following 2 could also be uppercase + pref.vmplayer.fullscreen.autohide = \"true\" + pref.vmplayer.webUpdateOnStartup = \"false\" + prefvmx.defaultVMPath = \"${vmhome}\" + prefvmx.mru.config = \"${confile}:\" + tmpDirectory = \"${tmpdir}\" + webUpdate.checkPeriod = \"manual\" + pref.eula.size = \"2\" + pref.eula.0.appName = \"VMware Player\" + pref.eula.0.buildNumber = \"${vmbuild}\" + pref.eula.1.appName = \"VMware Workstation\" + pref.eula.1.buildNumber = \"${vmbuild}\" + " \ + >${vmhome}/preferences +} + + +### log function ############################################################### +# function to write to stdout and logfile +writelog () +{ + # write to stdout + echo -e "$1" + + # log in file + echo -e "$1" >>${tmpdir}/runvmware.${USER}.log +} + + + + + + +### MAIN SECTION ############################################################### +## +## Main part of the script... +## +################################################################################ + +# Delete the LOCK file. its unsecure, but ... +rm -f ${tmpdir}/*LOCK >/dev/null 2>&1 + +# create vmware directories +mkdir -p ${tmpdir} >/dev/null 2>&1 +mkdir -p ${vmhome} >/dev/null 2>&1 + +# NO X-server, no runvmware ;) +[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1 + +# logo for console +cat <<EOL + + .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----. + | _| | | | | | | | | | _ | _| -__| + |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____| + Script for preparing VMware environment...(v${version}) + + +EOL + + +### CHECK MACHINE SETUP ######################################################## + +## log script information +writelog "##################################################\n" +writelog "# File created by $0 (v.${version})\n# on $(date)\n" +writelog "##################################################\n" +writelog "Starting...$(echo ${np} | sed 's/i.*-//g' \ + | tr [a-z] [A-Z])-mode\n" + +## log disksetup +writelog "Directories: + \tTmpdir:\t\t${tmpdir}\n\tVMhome:\t\t${vmhome}\n\tTmpdir info:\ + \t$(mount | grep -i "/tmp ")\n" + +## configuring MAC address: first four bytes are fixed (00:50:56:0D) the +## last two bytes are taken from the local network adaptor +writelog "Starting hardware / device detection...\c" + +## Get last two MAC values for VMPlayer +# NF = Number of Fields of found values in awk +mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \ + | awk -F ":" '{print $(NF-1)":"$NF}') + + +## check if we have enough free memory + +# get memory in MB +totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024) + +# calculate memory for vmplayer +# TODO: unhappy how it is calculated +mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) + +# check memory range +memtest=${totalmem}-128 +if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then + writelog "\n\n\tYour memory is out of range: ${mem} MB. + \tMin. 128 MB for host and guest!\n\tTry --mem option.\n" + exit 1 +fi + + +## look for cdrom, dvd and add them to the vm config file +if [ -L /dev/cdrom ] ; then + cdr_1="TRUE" +fi + +if [ -L /dev/cdrom1 ] ; then + cdr_2="TRUE" +fi + + +## Write all results to logfile +writelog "finished\nResults:\n\tMAC:\t\t00:50:56:0D:${mac}\n\tMem:\t\t + ${mem} MB \tMax. res.:\t${xres}x${yres}\n\t\tCD-ROM_1:\t${cdr_1}\n\t + CD-ROM_2:\t${cdr_2}\n" +writelog "finished\nResults:\n\tDiskfile:\t${diskfile}\n\tDisktype:\t${hddrv} + \tVMostype:\t${vmostype}\n\tDisplayname:\t${displayname}\n" + +# check if image exists, etc... +filecheck + +# VMPlayer Version. +# strings is the fastest and most secure way, vmplayer -v takes too much time +# and resources +vmbuild=$(strings /usr/lib/vmware/bin/vmplayer \ + | grep -m 1 "build-"|sed 's/.*build-//') +if [ ! -n ${vmbuild} ]; then + vmbuild=$(vmplayer -v | sed 's/.*build-//') +fi + +### write configuration files ################################################## +# create preferences +preferencesheader + +# create VMware startup file +runvmwareconfheader + +# poolconfiguration config.xml +#TODO: change default to global variable ${POOL} in the future +#comment out cause of scanner... we do it now by hand... just a hack +#TODO: cleaner source... +#sed -e "s/HOSTNAME/${hostname}/" \ +# -e "s/USER/${USER}/" /var/lib/vmware/templates/client-config.xml.default \ +# > /etc/vmware/fd-loop/config.xml +echo "<settings>" > /etc/vmware/fd-loop/config.xml +echo " <eintrag>" >> /etc/vmware/fd-loop/config.xml +echo " <computername param=\"${hostname}\">" >> /etc/vmware/fd-loop/config.xml +echo " </computername>" >> /etc/vmware/fd-loop/config.xml +echo " <username param=\"${USER}\">" >> /etc/vmware/fd-loop/config.xml +echo " </username>" >> /etc/vmware/fd-loop/config.xml +# if we have a scanner, then copy scannerinformation to this xml +sanelines="$(wc -l /etc/sane.d/net.conf|awk '{ print $1 };')" +if [ -f /etc/sane.d/net.conf ] && [ "${sanelines}" -eq 1 ]; then + echo "<scanner param=\"$(cat /etc/sane.d/net.conf)\">" \ + >> /etc/vmware/fd-loop/config.xml + echo "</scanner>" >> /etc/vmware/fd-loop/config.xml +fi +echo " </eintrag>" >> /etc/vmware/fd-loop/config.xml +echo "</settings>" >> /etc/vmware/fd-loop/config.xml + + +# sync is needed to ensure that data is really written to virtual disk +sync + +# own nvram. We need it for floppy drive b, default nvram has just drive a +# TODO: Take care if plugin-repo changes +#cp /var/lib/vmware/templates/nvram.5.0 ${tmpdir}/nvram +cp /opt/openslx/plugin-repo/nvram.5.0 ${tmpdir}/nvram + +# adjust volume +writelog "Unmuting sound...\c" +amixer -q sset Master 28 unmute +amixer -q sset PCM 28 unmute +writelog "finished\n" + +### run vmplayer ############################################################### +# ...with the automatically written config file +if [ $(which vmplayer 2>/dev/null) ]; then writelog "\nStarting VMplayer..." + # run VMplayer + writelog "... vmplayer ${vmopt} ${confile}...\n" + vmplayer ${vmopt} ${confile} 2>&1 >/dev/null +else + writelog "\nNo VMware/VMPlayer found!\n" + exit 1 +fi + +writelog "\nBye.\n" +exit 0 diff --git a/os-plugins/plugins/vmware/files/vmware-init b/os-plugins/plugins/vmware/files/vmware-init deleted file mode 100755 index d41230ca..00000000 --- a/os-plugins/plugins/vmware/files/vmware-init +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh -# -# parts taken from vmware start script: -# Copyright 1998-2007 VMware, Inc. All rights reserved. -# -# This script manages the services needed to run VMware software - -# Basic support for the Linux Standard Base Specification 1.3 -# Used by insserv and other LSB compliant tools. -### BEGIN INIT INFO -# Provides: VMware -# Required-Start: $network $syslog -# Required-Stop: -# Default-Start: 2 3 5 -# Default-Stop: 0 6 -# Short-Description: Manages the services needed to run VMware software -# Description: Manages the services needed to run VMware software -### END INIT INFO - -# prereqs: -# 1) a) this script b) the modules (vmmon, vmblock, vmnet) match the -# installed vmware/player version (ensured by stage1 install) -# 2) the script is tailored to the vendor-os we are running -# 3) the script checks a configuration file to know which modes to -# prepare -# 4) we use the dhcp-server for ALL internal interfaces we are running -# 5) stage3 produces a configfile /etc/vmware/slxvmconfig where the -# settings of networking etc. are made - -# read the configuration file generated in stage3 to configure the -# host internal interfaces -. /etc/vmware/slxvmconfig - - -load_modules() { - # to be filled in via the stage1 configuration script - modprobe -qa vmmon vmnet vmblock 2>/dev/null - # most probably nobody wants to run the parallel port driver ... - #modprobe vm... -} -unload_modules() { - # to be filled with the proper list within via the stage1 configuration - # script - rmmod vmmon vmblock vmnet 2>/dev/null -} -# the bridged interface -setup_vmnet0() { - if [ -n "$vmnet0" ] ; then - # the path might be directly point to the plugin dir - /usr/bin/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0 - fi -} -# we definately prefer the hostonly interface for NATed operation too -# distinction is made via enabled forwarding -setup_vmnet1() { - if [ -n "$vmnet1" ] ; then - test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 - # the path might be directly point to the plugin dir - /usr/bin/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \ - /dev/vmnet1 vmnet1 - dhcpif="$dhcpif vmnet1" - ip addr add $vmnet1 dev vmnet1 - if [ -n "$vmnet1nat" ] ; then - # needs refinement interface name for eth0 is known in stage3 already - echo "1" > /proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null - echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding 2>/dev/null - #iptables -A -s vmnet1 -d eth0 - fi - fi -} -# incomplete ... -setup_vmnet8() { - if [ -n "$vmnet8" ] ; then - test -c /dev/vmnet1 || mknod c 119 8 /dev/vmnet8 - # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 - /usr/bin/vmnet-natd -d /var/run/vmnet-natd-8.pid \ - -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf - dhcpif="$dhcpif vmnet8" - ip addr add $vmnet8 dev vmnet8 - fi -} -runvmdhcpd() { - if [ -n "$dhcpif" ] ; then - # the path might be directly point to the plugin dir - mkdir /var/run/vmware 2>/dev/null - /usr/bin/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \ - /var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid $dhcpif - fi -} - -case $1 in - start) - # message output should match the given vendor-os - echo "Starting vmware background services ..." - load_modules - setup_vmnet0 - setup_vmnet1 - setup_vmnet8 - runvmdhcpd - ;; - stop) - # message output should match the given vendor-os - echo "Stopping vmware background services ..." - killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \ - vmware-tray 2>/dev/null - # wait for shutting down of interfaces - usleep 50000 - unload_modules - ;; - status) - echo "Say something useful here ..." - ;; -esac - -exit 0 |