Ubuntu 20.04开机启动vmware虚拟机服务

Ubuntu 20.04开机启动vmware虚拟机服务

到/etc/init.d目录新增一个启动服务文件,举例:vm-services,把下面的内容贴进去按照注释改改,chomd为755

#!/usr/bin/env bash

### BEGIN INIT INFO
# Provides: vm-services
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# X-Start-Before: 
# X-Stop-After: 
# Default-Start: 2 3 4
# Default-Stop: 0 6
# Short-Description: This service starts and stops VMware services
### END INIT INFO
### 上面注释里的申明一定要保留

prog="vmware_services"
# 随便取个英文程序名
progname="xxxx" 
# 要启动的虚拟机配置目录
MDIR=/xxx/vmwares/xxxx/

if [ ! -d "$MDIR" ]
then
echo "Invalid directory $MDIR"
 exit 1
fi

start()
{
 echo "Starting $progname ${MDIR}"
 # 下面的root可以换成指定的用户名 xxxx.vmx换成虚拟机目录下的真实文件名
 su -l root -c "cd ${MDIR} && vmrun -T ws start ./xxxx.vmx nogui >/var/log/vm.log 2>&1"
}

stop()
{
 # xxxx.vmx换成虚拟机目录下的真实文件名
 vmrun stop "${MDIR}xxxx.vmx" nogui >/var/log/vm_stop.log
}
status()
{
 vmrun list
}
case "$1" in
start)
    start
      ;;
stop)
   stop
     ;;
status)
   status
     ;;
 *)
  echo "Usage: $prog {start|stop|status}"
  exit 1
  ;;
esac

exit 0

保存,执行sudo update-rc.d vm-services defaults,然后重启下试试

内容解释:

  • vmrun命令可以用来操作虚拟机的开启关闭,具体可以查看命令帮助
  • nogui表示不需要图形界面,需要界面的话就在脚本里去掉
  • su -/-l/-login [user],是切换到其他用户。和su不同到是:切换用户后使用新用户到环境变量,而su使用原来用户到环境变量