zoukankan      html  css  js  c++  java
  • Virtualbox开机启动,service命令管理

    #!/bin/bash
    #chkconfig:235 80 20
    #description:start or stop vbox
    #Author:AiYS~20180502
    #OS:RedHatEnterprise6.4,上传vbox至/etc/init.d/并赋权755,chkconfig --add vbox添加后可开机启动并用service命令管理


    . /etc/rc.d/init.d/functions
    . /etc/sysconfig/network

    VBoxManage list vms &>/dev/null
    [ $? -eq 0 ] && VBuuid=($(VBoxManage list vms | awk '{print $2}' | tr -d {})) || VBuuid=()
    function start {
    if [ ${#VBuuid[*]} -gt 0 ];then
      for vbstart in ${VBuuid[*]}
      do
        VBname=$(VBoxManage showvminfo ${vbstart} --machinereadable | egrep "name" | awk -F'"' '{print $2}')
        [ $(VBoxManage showvminfo ${vbstart} --machinereadable | egrep "VMState" | awk -F'"' '{print $2}')=running ] && echo -e "${VBname}正在运行!" || VBoxManage startvm ${vbstart} --type headless &>/dev/null
      done
    else
      echo -e "本机未安装VirtualBox!"
    fi
    }

    function stop {
    VBoxManage list runningvms &>/dev/null
    [ $? -eq 0 ] && VBrunning=($(VBoxManage list runningvms | awk '{print $2}' | tr -d {})) || VBrunning=()
    if [ ${#VBrunning[*]} -gt 0 ];then
      for vbstop in ${VBrunning[*]}
      do
        VBoxManage controlvm ${vbstop} acpipowerbutton && echo -e "关闭$(VBoxManage showvminfo ${vbstop} --machinereadable | egrep "name" | awk -F'"' '{print $2}')"
      done
    else
      echo "本机没有运行的VirtualBox!"
    fi
    }

    function status {
    if [ ${#VBuuid[*]} -gt 0 ];then
      for vbstate in ${VBuuid[*]}
      do
        name=$(VBoxManage showvminfo ${vbstate} --machinereadable | egrep "name" | awk -F'"' '{print $2}')
        state=$(VBoxManage showvminfo ${vbstate} --machinereadable | egrep "VMState" | awk -F'"' '{print $2}')
        echo -e "${name} ${state}"
      done
    else
      echo -e "本机未安装VirtualBox!"
    fi
    }

    case "$1" in
      start)
        start;;
      stop)
        stop;;
      status)
        status;;
      *)
        echo -e "Format error! eg:service $0 {start|stop|status}"
        exit 1;;
    esac

    ******开机启动虚拟机******

    在/etc/rc.local中增加:

    sh /etc/init.d/vbox start

  • 相关阅读:
    HTTP Digest authentication
    HDU 1520 Anniversary party 树形DP
    Servlet过滤器
    Js apply 方法 具体解释
    java 读取固定目录下的文件(和上篇差点儿相同)
    使用nodeitk进行角点检測
    ~/.local/share/Trash/files
    mv,Directory not empty不能目录覆盖
    cp 提示 overwrite 问题
    cv:显示Linux命令运行进度
  • 原文地址:https://www.cnblogs.com/AiYS/p/8982264.html
Copyright © 2011-2022 走看看