【VMware ESXi】使用 ESXi esxcli 命令关闭虚拟机电源
当虚拟机因为快照、存储任务或其他异常进入假死状态时,常规关机方式可能会失效,甚至会提示“其他任务已在进行中”。这种情况下,可以直接在 ESXi 主机上通过 esxcli 命令定位并终止对应虚拟机进程。
问题现象
虚拟机表现为:
- 无法正常关机
- 控制台无法进入
- 网络不通
- vCenter 中提示其他任务正在进行
处理方法
可以在本地控制台或 SSH 远程登录 ESXi 主机后,使用 esxcli 命令关闭虚拟机电源。
先获取虚拟机进程信息
运行以下命令获取正在运行的虚拟机列表。输出中会包含 World ID、UUID、显示名称和 .vmx 路径等信息:
esxcli vm process list
再执行关闭命令
找到目标虚拟机对应的 World ID 后,执行:
esxcli vm process kill --type=[soft|hard|force] --world-id=WorldNumber三种方式的含义如下:
soft:软关机,优先尝试正常关闭。hard:硬关机,类似强制断电。force:强制终止,建议只在前两种方式都无效时使用。
例如,要关闭 World ID 为 2775792 的虚拟机,可以执行:
esxcli vm process kill -t=soft -w=2775792
使用建议
- 建议按
soft -> hard -> force的顺序逐级尝试。 - 如果虚拟机上还有重要 I/O 任务,强制关闭前要评估数据一致性风险。
- 处理完成后,最好顺手检查一下导致假死的根因,例如快照链、存储性能或锁文件异常。