虚拟机关机后如何自动关闭宿主机

发布时间:2020-05-31编辑:脚本学堂
有关虚拟机关机后自动关闭宿主机的方法,在虚拟机中执行的后台任务耗时较久,想在任务执行完毕后关闭虚拟机(Linux)和宿主机(windows),需要的朋友参考下。

linux系统中shutdown命令用于定时关机任务,比如让linux系统在某些后台进程结束后,再自动关机,则可以这样:
 

watch 'ps -p 2421 || shutdown -h now && exit'

其中,2421为要等待的进程ID,使用watch命令就可以每隔2秒执行引号中的命令,这比使用crontab要简单。

而在windows中实现进程结束后关机,可以创建如下的批处理脚本
 

@echo off
:LOOP1
TASKLIST /FI "PID eq 2421"|findstr 2421
if %errorlevel% NEQ 0 (
    shutdown /s
    pause
)
ping 127.0.0.1 -n 3 -w 1000 > nul
goto LOOP1

其中,ping 127.0.0.1 -n 2 -w 1000 > nul是用于延时2秒,相当于Linux中的sleep 2命令。

虚拟机中执行的后台任务耗时较久,想在任务执行完毕后关闭虚拟机(Linux)和宿主机(windows)。

首先,在Linux使用上文的命令设置任务完成后自动关机;
然后,需要设置自动关闭windows,以VMware Workstation 9.0为例,可以发现,在虚拟机对应的本地进程是"vmware-vmx.exe",虚拟机关机完成后,该进程也结束。
因此,只需要使用任务管理器或tasklist命令确定"vmware-vmx.exe"进程的进程号后,按照以上方法即可实现。

更多linux关机命令的用法,请点这里