LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1376|回复: 8

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

[复制链接]
发表于 2011-6-7 10:37:30 | 显示全部楼层 |阅读模式
问题:我的宿主机是Debian Squeeze(Gnome),虚拟机安装了win7. 由于有文件需要使用迅雷下载,所以我在虚拟的win7中开启迅雷下载文件,但是时间太长,所以我想预设好迅雷的“下载完成后关机“功能,可是这时我不知道该如何才能让宿主机Debian自动在虚拟的win7关闭后自动关机? 更不知道这个想法可否实现?如果可以的话,该怎么样做呢?谢谢!
发表于 2011-6-7 10:56:34 | 显示全部楼层
判断虚拟机进程在不在

或者写脚本启动虚拟机, 结束后关机
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-7 11:22:30 | 显示全部楼层
我也这么想过,但是我对于shell脚本不太熟啊,我只会诸如sudo shutdown -h now,不知道如何用脚本来启动虚拟机,并判断该虚拟机结束!
回复 支持 反对

使用道具 举报

发表于 2011-6-7 13:22:01 | 显示全部楼层
Post by adam8157;2141905
判断虚拟机进程在不在
或者写脚本启动虚拟机, 结束后关机


直接启动是一个管理界面,通过那个界面再启动虚拟机,检测虚拟机进程是否在,这可行。方法也不难,循环检测指定的进程名称即可。

脚本启动不一定可行。因为此时虚拟机管理界面并不一定退出了。
回复 支持 反对

使用道具 举报

发表于 2011-6-7 13:22:43 | 显示全部楼层
迅雷阿什么的,最讨厌了
回复 支持 反对

使用道具 举报

发表于 2011-6-8 22:58:23 | 显示全部楼层
写了个小脚本:
  1. #!/bin/sh
  2. state=$(pgrep VBox)
  3. while [ "$state" != "" ]
  4. do
  5.     echo sleep 60
  6.     sleep 60
  7.     state=$(pgrep VBox)
  8. done
  9. shutdown -h now
复制代码
回复 支持 反对

使用道具 举报

发表于 2011-6-8 23:45:58 | 显示全部楼层
直接:
  1. #!/bin/sh
  2. VBoxManage startvm xp
  3. sudo shutdown -h now
复制代码
xp是虚拟系统名字,执行完一句执行下一句
shutdown免sudo密码:
sudo visudo,加入
ALL ALL=NOPASSWD:/sbin/shutdown
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-10 15:20:26 | 显示全部楼层
谢谢各位,我试试你们提供的代码!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-2 09:15:36 | 显示全部楼层
我使用了如下的代码(不妨命名为auto-shutdown-vbox):
#!/bin/bash
state=$(pgrep VBox)
while [ "$state" != "" ]
do
    echo sleep 60
    sleep 60
    state=$(pgrep Vbox)
done
poff -a
sudo shutdown -h now

可是当我开启了virtualbox, 再用 sh  auto-shutdown-vbox执行该脚本以后, 却发现virtualbox还没有自动关机,可是该脚本却把宿主机给关了, 难道上述脚本有问题吗?
我目前安装的vbox是virtualbox-4.0_4.0.12-72916~Debian~squeeze_amd64.deb, 我记得好像上个版本的vbox使用该脚本还没有啥问题, 难道是该版本的问题?
期待高人解答,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表