关闭虚拟机提示“正在处理另一个任务”解决方法

一. 错误提示:ESXI关闭虚拟机时提示“正在处理另一个任务”,无法关闭
二. 出现情况:
虚拟机突然卡主,没有任何反应,就准备重置虚拟机,结果当重置进行到95%的时候,也卡住了,整整30分钟后提示操作超时,就打算关闭虚拟机,结果提示“正在处理另一个任务”,无法关闭,无奈,百度了一下,确实有个好方法,但是呢网上提供的方法还有点小错误,特此整理一下,分享给大家。
三. 解决方法:
前提是可以不用重启ESXi Server,这样影响范围就小了。

  1. 开启esxi的ssh服务
  2. SecurtCRT远程登录到esxi,重启VMware服务,命令是:/etc/init.d/hostd restart
  3. 查看虚拟机的进程,运行如下命令:ps |grep 虚拟机名字,虚拟机名字就是你左边列表里给它命的名字,其实只需输入部分名字即可,然后就会显示几串数字,就是进程PID。网上给出的命令是:ps -aux |grep 虚拟机名字,但是这条命令我敲下去是提示错误的。
  4. 运行 kill -9 PID 命令,把显示出来的几个PID都尝试结束一下。
  5. 进程结束后,再重新重启一下服务,/etc/init.d/hostd restart,那个关闭不了的虚拟机应该就OK了,如果大家遇到这种问题也可以按照我的方法尝试一下。

补充

解决方案
警告: 请严格按照文章中的步骤操作。每一步操作对虚拟机都有一定的影响,所以请不要跳过其中任何一步!

用vSphere Client关闭虚拟机
用客户端尝试顺利关闭虚拟机:

  1. 用vSphere Client或者 VI Client连接 VMware vCenter Server或VirtualCenter Server。
  2. 右键单击要关闭的虚拟机,从弹出的快捷菜单中选择“电源->关闭客户机”。如果操作失败并提示“正在处理另一个任务”,请等待任务完成,或者参考 Powering off a virtual machine fails with the error: Cannot power Off: Another task is already in progress (1027040) 或 vCenter operation times out with the error: Operation failed since another task is in progress (1004790).
  3. 如果虚拟机依然在运行,请尝试在主机上进行相同的操作。
  4. 用vSphere Client或者 VI Client 直接连接ESXi主机来运行虚拟机。
  5. 右键单击要关闭的虚拟机,从弹出的快捷菜单中选择“电源->关闭客户机”。
    如果虚拟机使用客户端不能正常关机,请选用以下任一种命令行模式。

安装 vSphere Command-Line Interface 工具
vSphere Command-Line Interface (vCLI) 会在本文的某些步骤中用到,所以在使用前请确保你已经正确的安装了它。

对于ESXi 3.5 主机, 请在 Remote Command-Line Interface Installation and Reference Guide中参考Remote CLI Installation and Execution 。
对于ESXi 4.0 主机, 请在 vSphere Command-Line Interface Installation and Reference Guide中参考vSphere CLI Installation, Execution, and Command Overviews 。
对于 ESXi 4.1主机,请参考 vSphere Command-Line Interface Installation and Scripting Guide。
对于ESXi 5.0 主机,请参考 vSphere Command-Line Interface Documentation。
注意: 对于ESXi 4.x 和 ESX 5.0主机,远程命令行接口程序会通过vSphere Management Assistant (vMA) 访问。 如果你偏爱这个工具,请在 vSphere Command-Line Interface Installation and Reference Guide中参考 Installing vMA and Running Commands from vMA 。

确认虚拟机的位置
请确认虚拟机是在哪个主机上运行。你可以通过vSphere Client中虚拟机的“摘要”选项卡来查看相关信息。随后将在虚拟机所在的主机上运行相关命令来关闭虚拟机。

使用ESXi 5.0 主机的esxcli 命令来关闭虚拟机
esxcli 命令能够在本地或远程来关闭运行在ESXi 5.0主机上的虚拟机。要获得更多信息,请参考 vSphere Command-Line Interface Reference中esxcli vm Commands 章节。

  1. 打开ESXi Shell、vSphere Management Assistant (vMA)或vSphere Command-Line Interface (vCLI) 客户端,只要esxcli工具能够运行即可。
  2. 使用如下命令获取正在运行的虚拟机清单,该清单由World ID、UUID、Display Name和 .vmx 配置文件所在路径构成:

esxcli vm process list

  1. 用如下命令关闭一台虚拟机:

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

注意: 有三种关闭虚拟机的方法,Soft 程度最低,hard 为立即执行,如果依然不能关闭,则可以使用force 模式。

  1. 执行步骤2来检查虚拟机是否已不再运行。

使用 ESXi 命令行工具 vim-cmd 来关闭虚拟机

  1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).
  2. 使用如下命令获取正在运行的虚拟机清单,该清单由VMID、Display Name和 .vmx 配置文件所在路径构成:

vim-cmd vmsvc/getallvms

  1. 获取虚拟机的当前状态:

vim-cmd vmsvc/power.getstate VMID

  1. 使用第2步获取的VMID 来关闭虚拟机:

vim-cmd vmsvc/power.shutdown VMID

Note: 如果虚拟机还是不能关闭,请尝试以下命令:

vim-cmd vmsvc/power.off VMID
在ESXi主机上发送信号来关闭虚拟机
虚拟机能够在命令行模式下停止相关进程从而关闭。

警告:这个操作对ESXi 主机有潜在的危险。 如果你不能正确的辨别进程ID,而误杀了其它进程,这极有可能引起不可预知的结果。如果你不能有把握的执行以下操作,请给VMware 技术支持部门发送支持请求,并在问题描述中说明本知识库的文档编号(1014165)。要获取更多信息,请参考How to Submit a Support Request。

在 ESXi 3.5-5.0主机中, 你可以使用 kill 命令来中止一个虚拟机进程。

  1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).
  2. 要知道ESXi 主机上是否有虚拟机进程在运行,可使用如下命令:

ps | grep vmx

输出如下所示:

7662 7662 vmx /bin/vmx
7667 7662 vmx /bin/vmx
7668 7662 mks:VirtualMachineName /bin/vmx
7669 7662 vcpu-0:VirtualMachineName /bin/vmx

每一个vmx进程都会返回一行。 请仔细辨别目标虚拟机的vmx父进程。第一列为进程ID(PID),第二列即为父进程ID(parent‘s PID)。 请确保你只中止了父进程。 父进程ID (PID)在每一行的第二列, 在本例中都用粗体标识。请记住这个号码,它将在下面的步骤中用到。

警告: 请确保你已经确认了要修复的虚拟机所在的行。如果你是对除了有问题的虚拟机以外的虚拟机进行这些操作,那么极有可能引起这些机器宕机。

  1. 如果 vmx 进程在列表中,使用如下命令即可终止该进程:

kill ProcessID

  1. 等待30秒然后重复步骤2来检查进程是否已终止。
  2. 如果进程依然没有终止,可使用以下命令:

kill -9 ProcessID

  1. 等待30秒然后重复检查进程是否已终止。

在ESXi 4.1-ESXi 5.0主机中,你可以使用 esxtop中的 k 命令来终止一个正在运行中的虚拟机进程。

  1. 在 ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).
  2. 使用以下命令来运行 esxtop 工具:

esxtop

  1. 按 c 选择 CPU 资源利用界面。
  2. 按 f 显示信息列表。
  3. 按 c 添加 Leader World ID列。
  4. 通过虚拟机名称和Leader World ID (LWID)确认我们要修复的虚拟机。
  5. 按 k。
  6. 在 World to kill 提醒后面,输入第6步确认的Leader World ID,然后按Enter。
  7. 等待30秒然后验证进程是否已经结束。

原文地址:https://blog.51cto.com/dhg666/2381116

时间: 2024-10-11 01:41:24

关闭虚拟机提示“正在处理另一个任务”解决方法的相关文章

sql server 2008 提示评估期已过的解决方法(升级无效)

提示窗口: 解决步骤: 第一步:进入SQL2008配置工具中的安装中心 第二步:再进入维护界面,选择版本升级 第三步:进入产品密钥,输入密钥 第四步:一直点下一步,直到升级完毕. SQL Server 2008 Developer(开发版):PTTFM-X467G-P7RH2-3Q6CG-4DMYB SQL Server 2008 Enterprise(企业版):JD8Y6-HQG69-P9H84-XDTPG-34MBB 注意:如以上选择“版本升级”总提示“失败”并要求“重启计算机”时,请把进程

Jquery中使用setInterval和setTimeout会提示缺少对象的错误,解决方法如下:

直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend({  show:function(){   alert("ready");  }});setInterval("show()",3000);}); 方法2. 指定定时执行的函数时不要使用引号和括号.  $(function(){function show(){   al

B150主板Win7系统出现蓝屏且提示错误代码0x000000C5的原因及解决方法

最近有用户反映,使用网吧内客户机出现蓝屏问题,且提示错误代码0x000000C5,检查发现客户机主板使用的是B150,这该怎么办呢?本文将提供Win7系统出现蓝屏且提示错误代码0x000000C5的原因及解决方法供大家了解,希望对大家有所帮助 近来有网吧用户反馈网吧内客户机出现C5蓝屏问题,客户机主板使用的是B150,那么如何解决呢?下面脚本之家的小编就带来了Win7系统出现0x000000C5蓝屏的解决方法,一起来看看吧. 原因说明 DNF等游戏程序会利用intel 虚拟化技术,如果没有开启i

python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法

原文链接:https://www.cnblogs.com/dreamyu/p/7889959.html 在ide中执行python程序,都已经在默认的项目路径中,所以直接执行是没有问题的.但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError: No module named xxx这样的错误,解决方法: 在报错的模块中添加: import sys import os curPath = os.path.abspath(os.path

关于cannot find module 'xxxx’的一个可能解决方法。

关于cannot find module 'xxxx'的一个可能解决方法. 由于学习angular2,想单独学习一下typescript下angular2使用的'rxjs'是怎么使用的,我用npm自己安装了rxjs,并使用了如下语句 import { Observable } from 'rxjs'; 报错如下: cannot find module 'rxjs', 但是同样的语句在angular/cli生成的angular项目下是不报错的,我找了半天,各种解决方法都不适用于我遇到的情况.由于这

Windows删除删除文件提示无法读源文件或磁盘解决方法

创建一份文本文档,写入以下二行代码: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 保存后,把TXT改成BAT批处理格式 把要删的文件拖到这个批处理文件上,会自动运行并删除. Windows删除删除文件提示无法读源文件或磁盘解决方法,布布扣,bubuko.com

net start mysql启动mysql,提示发生系统错误 5 拒绝访问 解决方法

解决问题方法如下: 在dos下运行net  start mysql 不能启动mysql!提示发生系统错误 5:拒绝访问!切换到管理员模式就可以启动了.所以我们要以管理员身份来运行cmd程序来启动mysql. 那么如何用管理员身份来运行cmd程序呢? 0.在C:\Windows\System32下面找到cmd.exe,右键附加到开始菜单 1.右键单击cmd选择"附到[开始]菜单(U)";这是就可以到开始菜单上找到cmd了, 2.右击选择属性,选择快捷方式,选择以管理员身份运行,再单击确定

时间同步提示RPC服务器不可用的解决方法

时间同步方面: 1.RPC服务没有启动 " 开始"--〉"设置"--〉"控制面板"找到"管理工具"--〉"服务",找到"Remote Procedure Call (RPC)",双击打开,在"启动类型"里选择"自动"后,点击确定:找到"Remote Procedure Call (RPC) Locator",双击打开,在&quo

客户端登录提示 :拒绝访问Temp目录解决方法

系统环境搭建好后,在客户端运行,登录提示:拒绝访问Temp目录解决方法,IIS apppool\oaserver没有访问temp目录的权限. 引起原因:因为服务端目录Temp权限不足解决方法:把 C:\Windows\Temp 目录设 为IIS_IUSRS权限即可. 原文地址:http://bbs.delit.cn/thread-729-1-1.html 转载请注明出处: 撰写人:度量科技http://www.delit.cn