Loading

×Sorry to interrupt
Uncaught ReferenceError: addCTracking is not defined
throws at https://kb.vmware.com/resource/KM_TealiumTrackingJS?v=0.5:100:1

Refresh

Cookie Preference Center

General Information on cookies

When you visit our website, we use cookies to ensure that we give you the best experience. This information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies by clicking on the different category headings to find out more and change your settings. However, blocking some types of cookies may impact your experience on the site and the services we are able to offer. Further information can be found in our

Cookie Policy.

Strictly Necessary

Strictly Necessary

Always Active

Strictly Necessary

Strictly necessary cookies are always enabled since they are essential for our website to function. They enable core functionality such as security, network management, and website accessibility. You can set your browser to block or alert you about these cookies, but this may affect how the website functions. For more information please visit www.aboutcookies.org or www.allaboutcookies.org.

Cookie Details‎

Performance

Performance

Performance

Performance cookies are used to analyze the user experience to improve our website by collecting and reporting information on how you use it. They allow us to know which pages are the most and least popular, see how visitors move around the site, optimize our website and make it easier to navigate.

Cookie Details‎

Please confirm your settings by refreshing the page.

Functional

Functional

Functional

Functional cookies help us keep track of your past browsing choices so we can improve usability and customize your experience. These cookies enable the website to remember your preferred settings, language preferences, location and other customizable elements such as font or text size. If you do not allow these cookies, then some or all of these services may not function properly.

Cookie Details‎

Advertising

Advertising

Advertising

Advertising cookies are used to send you relevant advertising and promotional information. They may be set through our site by third parties to build a profile of your interests and show you relevant advertisements on other sites. These cookies do not directly store personal information, but their function is based on uniquely identifying your browser and internet device.

Cookie Details‎

Advertising Cookies

Consent Leg.Interest

Select All Vendors

Select All Vendors

Select All Hosts

Select All

Clear Filters

Information storage and access

Apply

Confirm My Choices Reject All Allow All

My Subscriptions

Loading

Knowledge Base

Best practices for StartProgramInGuest API (70711)

Last Updated: 2/18/2020Categories: InformationalTotal Views: 4046Language:
English

3 like this article

Subscribe to get an email
newsletter with new updates

3 people found this helpful Please provide article feedback:

Details

This article provides information about the best practices for using the StartProgramInGuest API.

Solution

Use the following workflow for running a program in a guest using vSphere GuestOperations to keep things secure and captures maximum output for debugging:

Ensure the VM is ready for guest operations

The virtual machine must be powered on, and vim.vm.GuestInfo.guestOperationsReady must be set.

Create a temporary directory

Create a temporary directory from which to run the command and capture any output. This provides a secure sandbox for output which is easy to clean up.

The API is CreateTemporaryDirectoryInGuest(), which returns the new directory.

Create output files(s)

Create a temporary file in the new temporary directory. This is used to capture stdio. If stdout and stderr should be distinct, create two files.
The API is CreateTemporaryFileInGuest() using the results from step 2 as the directoryPath param.
Returns the new temp file(s).

(Optional) copy in the script to run

Use InitiateFileTransferToGuest to copy a script into the guest to run the command. This can be useful if there's a series of commands to run, or the arguments are complex.

Redirect output to the temporary file(s) from step 3 if necessary.

Note: On some Linux distributions, /tmp will not allow a program to be run from it because of the noexec mount option. For those case, ensure to create the temporary directory in step 2 on a file system without noexec.

Start the program

Start the guest program, redirecting output to the temporary files.

The API is StartProgramInGuest(). Use the temporary directory from step 2 as the working directory. Paths need to be absolute.

Its safest not to depend on the environment variables.

Stdio redirection can be done in the GuestProgramSpec arguments.

On Windows, if stdio is being redirected, prefix "cmd /c" so stdio redirection can be used.

The return value is a pid.

Wait for it to complete

Poll by calling ListProcessInGuest() passing in the pid until the exitCode and endTime become valid, which indicates the program has completed. The poll interval is best specified based on the program being run -- a quick cmdline app could check every second, something that can take minutes should delay a lot longer to minimize the stress on the system. Check at least every 5 minutes, which is how long the results will last.

Copy out any results

If the command generates output, or stdio is needed for debugging a failure, copy out the files.

The API is InitiateFileTransferFromGuest.

Clean up

Remove the temporary directory and any intermediate files.

Call DeleteDirectoryInGuest on the directory created in step 2 with the recursive flag set.

Detectable by VMware SkylineTM

Actions

Copy

link to clipboard
copied!

Print

Language:
English

Attachments

Additional Resources

KB
•
End Of General Availability of the Free vSphere Hypervisor (ESXi 7.x and 8.x) (2107518)

KB
•
vRealize Automation postgres データベース ebs_event テーブルのパージ間隔を調整する方法 (70759)

KB
•
Download and Install VMware Fusion (2014097)

Results 1-3 of 3

Ask The Community

Get answers quickly from VMware experts in the community

Post Subject

CONTINUE IN COMMUNITIES

Related Products:

VMware vSphere ESXi

VMware vSphere ESXi

Related Versions:

VMware vSphere ESXi 6.7

VMware vSphere ESXi 6.5

VMware vSphere ESXi 6.0

VMware vSphere ESXi 5.5

VMware vSphere ESXi 5.1

Take Our Survey

Support Assistant