ESXi命令关闭虚拟机 | ESXi怎么用命令对VM关机

ESXi命令关闭虚拟机 | ESXi怎么用命令对VM关机

做VMware运维,有时会遇到VM卡死的情况,(如虚拟机快照操作、磁盘占用等原因导致无法响应),出现类似假死的状态,同时控制台无法访问,而且尝试在vCenter和ESXi上点关闭电源时会失败或者完全无作用,有时还会提示“其他任务已在进行中”,总而言之就是,我们无法通过常规方法对某一个VM关机。

本文将介绍如何通过ESXi命令行,使用esxcli命令强制关闭这类虚拟机,帮助恢复正常业务。

我们有新旧两套ESXi命令都可以实现通过命令行对虚拟机进行关机,推荐第一个esxcli vm process kill命令行的办法,因为这个方法比较快捷,而且不要求VM有装VMware Tools.

首先我们假设我们的第一台New Virtual Machine,通过vCenter点击关闭电源无法关机,我们需要用命令行方式对其进行关机。

首先我们SSH进去ESXi,或者通过服务器的远程控制台,如iDRAC或者iLO进入ESXi的橙黑DCUI console

ESXi命令关闭虚拟机的办法一:esxcli vm process kill

我们可以用以下两个命令组合:

esxcli vm process list
esxcli vm process kill --type= [soft,hard,force] --world-id= WorldNumber

第一个esxcli vm process list命令用来列出所有开机状态的VM,我们要找到需要关机的VM名字,记录下该VM的World ID:

第一个esxcli vm process list命令用来列出所有开机状态的VM,我们要找到需要关机的VM名字,记录下该VM的World ID:
我们看到这个虚拟机的World ID为2103991

接着esxcli vm process kill的命令,对它进行关机:esxcli vm process kill –type=soft –world-id=2103991

接着esxcli vm process kill的命令,对它进行关机,

没有返回错误或者输出,证明VM关机成功。同时我们再用esxcli vm process list也看不到之前的VM了,返回vCenter, 确认VM已经关机。

我们可以看到–type有三种关闭虚拟机的方式可以尝试:[soft, hard, force]:

  • esxcli vm process kill –type=soft
  • esxcli vm process kill –type=hard
  • esxcli vm process kill –type=force

这三种的关机类型的区别是

  1. 必须先尝试 ‘soft’ 关机,这种关机可以给到VMX 进程一个干净关闭的机会(类似于 kill 或 kill -SIGTERM)。
  2. 如果soft kill不起作用,可以尝试 ‘hard’ 关闭,它将立即关闭进程(类似于 kill -9 或 kill -SIGKILL)。’
  3. ‘force’ 仅应作为最后的手段来关闭虚拟机。如果这三种方式都失败,则需要重新启动。

ESXi命令关闭虚拟机的办法二:vim-cmd vmsvc

我们可以用以下两个命令组合:

vim-cmd vmsvc/getallvms
vim-cmd vmsvc/power.getstate VMID
vim-cmd vmsvc/power.shutdown VMID

注意:这个命令要求VM有装VMware Tools, 如果没有装的话,这个命令就不起作用,并会有以下的错误:

(vim.fault.ToolsUnavailable) {
faultCause = (vmodl.MethodFault) null,
faultMessage =
msg = "Received SOAP response fault from []: shutdownGuest
Cannot complete operation because VMware Tools is not running in this virtual machine."
}

第一个命令vim-cmd vmsvc/getallvms用来获取注册在该ESXi主机上的所有VM(包括关机状态的VM),记录下需要关机的虚拟机的vmid

接着我们用vim-cmd vmsvc/power.getstate VMID来看看这两台虚拟机的状态

接着我们用vim-cmd vmsvc/power.getstate VMID来看看这两台虚拟机的状态
可以看到第一台vmid为1的VM是开机状态Powered On, 另一台VM是关机状态

我们用vim-cmd vmsvc/power.shutdown 1来关闭vmid 1这台名为New Virtual Machine的虚拟机,没有输出证明已经关机成功。

有VM问题需要协助?

免费试用VMware技术助理(已接Deepseek)!即时解答VM难题

→ 🤖VM技术助理

解析和诊断各类vCenter错误,ESXi日志,虚拟机vmware.log

→ 📕VMware日志分析器

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware技术助理(已接Deepseek)!即时解答VM难题 → 🤖VM技术助理

试试 📕VMware日志分析器 免费诊断各类vCenter错误,ESXi日志,虚拟机vmware.log等等

########

扫码加入VM资源共享交流微信群(请备注加群

需要协助?或者只是想技术交流一下,直接联系我们!

推荐更多

vCenter 8.0U2 编辑旧硬件版本虚拟机设置失败问题
运维必备

vCenter 8.0U2 编辑旧硬件版本虚拟机设置失败问题

vCenter 8.0U2 编辑旧硬件版本虚拟机设置失败问题。详细解析 vCenter 8.0U2 中无法编辑硬件版本 9 及更低版本虚拟机设置的问题,提供两种临时解决方案和正式修复版本,帮助管理员快速恢复管理功能。 本文针对该问题提供了深度剖析与实测解决方案。

vSphere 8.x 集群所需状态不兼容的 vSwitch0 配置问题
运维必备

vSphere 8.x 集群所需状态不兼容的 vSwitch0 配置问题

vSphere 8.x 集群所需状态不兼容的 vSwitch0 配置问题。详细解析 vSphere 8.x 中集群所需状态配置报告不兼容的原因,重点说明 vSwitch0 bridge/nics configstore 不匹配问题,并提供 fixBridgeNic.py 脚本解决方案,帮助管理员快速恢复合规性。 本文针对该问题提供了深度剖析与实测解决方案。

vSphere 8.x Client 特定操作无响应的浏览器兼容性问题
运维必备

vSphere 8.x Client 特定操作无响应的浏览器兼容性问题

vSphere 8.x Client 特定操作无响应的浏览器兼容性问题。详细解析 vSphere 8.x Client 中某些操作无响应的原因,重点说明浏览器兼容性要求,并提供 PowerCLI 备用方法,帮助管理员快速解决问题。 本文针对该问题提供了深度剖析与实测解决方案。

vCenter vpxd 服务无法启动的 PostgreSQL 日志修复方法
运维必备

vCenter vpxd 服务无法启动的 PostgreSQL 日志修复方法

vCenter vpxd 服务无法启动的 PostgreSQL 日志修复方法。详细解析 vCenter Server 中 vpxd 服务无法启动的原因(PostgreSQL 事务日志损坏),并提供完整的 pg_resetxlog/pg_resetwal 修复步骤,帮助管理员快速恢复 vCenter 服务。 本文针对该问题提供了深度剖析与实测解决方案。

//omg10.com/4/9119499