I've got a virtual machine running on a server that I can't stop or reboot - I can't log onto it anymore and I can't stop it using the VMware server console. There are other VM's running so rebooting the host is out of the question. Is there any other way of forcing one machine to stop?
This question is related to
vmware
If you're on linux then you can grab the guest processes with
ps axuw | grep vmware-vmx
As @Dubas pointed out, you should be able to pick out the errant process by the path name to the VMD
In some cases you may not be able to suspend, or for that matter take any of the "Power" actions on the VM. You may also already have multiple VMs up and running. Use this process to identify the correct PID to kill.
On Windows 7 - Open Task Manager - Look for processes with the name, "vmware-vmx.exe", note the PIDs.
Switch to the Performance tab and start the "Resource Monitor". Expand the "Disk Activity" panel. Sort the "File" column. Look for the appropriate vmdk file for the VM you want to kill. The "Image" column will have the "vmware-vmx" process listed. Note the PID.
Switch back to the "Processes" tab and kill the PID.
Here's what I did based on
a) @Espo 's comments and
b) the fact that I only had Windows Task Manager to play with....
I logged onto the host machine, opened Task Manager and used the view menu to add the PID column to the Processes tab.
I wrote down (yes, with paper and a pen) the PID's for each and every instance of the vmware-wmx.exe process that was running on the box.
Using the VMWare console, I suspended the errant virtual machine.
When I resumed it, I could then identify the vmware-vmx process that corresponded to my machine and could kill it.
There doesn't seem to have been any ill effects so far.
Similar, but using WMIC command line to obtain the process ID and path:
WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid
This will create a text file with each process and its parameters. You can search in the file for your VM File Path, and get the correct Process ID to end task with.
Thanks to http://windowsxp.mvps.org/listproc.htm for the correct command line parameters.
Here's what I did based on
a) @Espo 's comments and
b) the fact that I only had Windows Task Manager to play with....
I logged onto the host machine, opened Task Manager and used the view menu to add the PID column to the Processes tab.
I wrote down (yes, with paper and a pen) the PID's for each and every instance of the vmware-wmx.exe process that was running on the box.
Using the VMWare console, I suspended the errant virtual machine.
When I resumed it, I could then identify the vmware-vmx process that corresponded to my machine and could kill it.
There doesn't seem to have been any ill effects so far.
Similar, but using WMIC command line to obtain the process ID and path:
WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid
This will create a text file with each process and its parameters. You can search in the file for your VM File Path, and get the correct Process ID to end task with.
Thanks to http://windowsxp.mvps.org/listproc.htm for the correct command line parameters.
see the following from VMware's webpage
Powering off a virtual machine on an ESXi host (1014165) Symptoms
You are experiencing these issues:
You cannot power off an ESXi hosted virtual machine.
A virtual machine is not responsive and cannot be stopped or killed.
"Using the ESXi 5.x esxcli command to power off a virtual machine
The esxcli command can be used locally or remotely to power off a virtual machine running on ESXi 5.x. For more information, see the esxcli vm Commands section of the vSphere Command-Line Interface Reference.
Open a console session where the esxcli tool is available, either in the ESXi Shell, the vSphere Management Assistant (vMA), or the location where the vSphere Command-Line Interface (vCLI) is installed.
Get a list of running virtual machines, identified by World ID, UUID, Display Name, and path to the .vmx configuration file, using this command:
esxcli vm process list
Power off one of the virtual machines from the list using this command:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
Notes:
Three power-off methods are available. Soft is the most graceful, hard performs an immediate shutdown, and force should be used as a last resort.
Alternate power off command syntax is: esxcli vm process kill -t [soft,hard,force] -w WorldNumber
Repeat Step 2 and validate that the virtual machine is no longer running.
For ESXi 4.1:
Get a list of running virtual machines, identified by World ID, UUID, Display Name, and path to the .vmx configuration file, using this command:
esxcli vms vm list
Power off one of the virtual machines from the list using this command:
esxcli vms vm kill --type=[soft,hard,force] --world-id=WorldNumber"
For ESXi 5, you'll first want to enable ssh via the vSphere console and then login and use the following command to find the process ID
ps -c | grep -i "machine name"
You can then find the process ID and end the process using kill
see the following from VMware's webpage
Powering off a virtual machine on an ESXi host (1014165) Symptoms
You are experiencing these issues:
You cannot power off an ESXi hosted virtual machine.
A virtual machine is not responsive and cannot be stopped or killed.
"Using the ESXi 5.x esxcli command to power off a virtual machine
The esxcli command can be used locally or remotely to power off a virtual machine running on ESXi 5.x. For more information, see the esxcli vm Commands section of the vSphere Command-Line Interface Reference.
Open a console session where the esxcli tool is available, either in the ESXi Shell, the vSphere Management Assistant (vMA), or the location where the vSphere Command-Line Interface (vCLI) is installed.
Get a list of running virtual machines, identified by World ID, UUID, Display Name, and path to the .vmx configuration file, using this command:
esxcli vm process list
Power off one of the virtual machines from the list using this command:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
Notes:
Three power-off methods are available. Soft is the most graceful, hard performs an immediate shutdown, and force should be used as a last resort.
Alternate power off command syntax is: esxcli vm process kill -t [soft,hard,force] -w WorldNumber
Repeat Step 2 and validate that the virtual machine is no longer running.
For ESXi 4.1:
Get a list of running virtual machines, identified by World ID, UUID, Display Name, and path to the .vmx configuration file, using this command:
esxcli vms vm list
Power off one of the virtual machines from the list using this command:
esxcli vms vm kill --type=[soft,hard,force] --world-id=WorldNumber"
For ESXi 5, you'll first want to enable ssh via the vSphere console and then login and use the following command to find the process ID
ps -c | grep -i "machine name"
You can then find the process ID and end the process using kill
For VmWare fusion, hold the alt key while you click 'restart virtual machine'
Source: Stackoverflow.com