【VMware ESXi】ESXi中使用命令行强行关闭虚拟机进程
当虚拟机因为资源限制、任务卡死或进程异常,导致无法通过 vCenter 正常关机时,可以直接在 ESXi 主机命令行里强行关闭相关虚拟机进程。
适用场景
例如有客户误把 CPU 资源限制设置为 0,结果虚拟机完全无法操作,也不能正常关机。这类情况下,通常就需要转到 ESXi Shell 处理。
方式一:直接查找并杀死 vmx 进程
先开启 Troubleshooting Options,使用 Alt + F1 登录本地控制台,或者通过 SSH 登录 ESXi。
ps | grep vmx | more如果已经知道虚拟机名称,也可以直接按名称过滤。找到目标进程后执行:
kill -9 pid方式二:通过 vim-cmd 操作虚拟机
先获取所有虚拟机信息:
vim-cmd vmsvc/getallvms然后根据 vmid 执行关闭、开机、重启或查询状态:
vim-cmd vmsvc/power.off vimid #关闭虚拟机
vim-cmd vmsvc/power.on vimid #打开虚拟机
vim-cmd vmsvc/power.reset vimid #重启虚拟机
vim-cmd vmsvc/power.getstate vimid #获取虚拟机状态方式三:通过 esxcli 处理
查看正在运行的虚拟机进程信息:
esxcli vm process list #获取正在运行的虚拟机信息然后根据 world-id 执行关闭:
esxcli vm process kill --type=hard --world-id=id常见模式包括:
softhardforce
补充说明
- 一般建议按
soft -> hard -> force的顺序逐级尝试。 - 强制关闭后,最好排查导致虚拟机卡死的根因,而不是只停留在“关掉了”这一步。
- 执行
kill后可能不会瞬间结束,等待一段时间再刷新状态即可。