VMware Player——作为服务运行

VMware Player——作为服务运行

是否可以将 VMware 播放器作为 Windows 服务运行,以便用户无需登录即可运行播放器?

答案1

VMware 服务器是在后台运行虚拟机的正确工具,而不是 Vmware Player。

答案2

抱歉这么晚才回复。我今天一直在想这个问题。我偶然发现了这个答案,觉得应该让 SF 知道。

你实际上可以...

  • 将其添加到您的 VMX 配置文件中以设置 VMWare Player 不显示 UI:

    msg.noOk = "TRUE"

  • 得到安装程序来自Windows Server 资源工具包创建你自己的服务

  • 在启动时使用批处理文件调用刚刚创建的服务

您可以在此处找到分步说明:

http://research.stowers-institute.org/dct/docs/admin/VMwarePlayerService.htm

答案3

我知道这是一个老问题,但是我在整个互联网上搜索解决方案,却找不到像我想分享的那样全面的内容。

是的,可以将 vmware player 用作 Linux 的服务(Windows 有单独的解决方案);这很容易,我想不出不这样做的理由。它特别适合从无头服务器托管无头服务器。

另一个面向 VMware 的选择 VMware Server 已被弃用,而我所知道的唯一其他免费选择是 VirtualBox。如果您比 VMWare Player 更喜欢它,那就更棒了,但我了解 VMWare Player,我认为没有理由不使用支持良好的路径来获得我想要的东西。

假设您希望它在非 root 帐户下运行,并在标准服务启动/关闭时间启动和关闭。如果是这样,那么请按照以下方法配置它:

  • 获取守护进程包(通常默认不安装):

    apt-get install daemon
    
  • 从 vmware.com 下载 VMware Player 和 VMware VIX 并安装它们以获取 VM 引擎和 VIX 的 vmrun(vm 执行的命令行控制)二进制文件。

  • 通过创建将服务添加到启动项/etc/init.d/<vm_server_name>。它看起来可能像这样:

    #! /bin/bash
    ### BEGIN INIT INFO
    # Provides:          vm_server_name
    # Required-Start:    $named $remote_fs $syslog
    # Required-Stop:     $named $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: My Server VM
    # Description:       Virtual Machine instance of My Server
    ### END INIT INFO
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    VM="/path/to/vmx_file.vmx"
    USER_TO_RUN_UNDER="username"
    
    if [[ "$USER" == "$USER_TO_RUN_UNDER" ]]; then
      USER_FLAG=""
    else
      USER_FLAG="--user=$USER_TO_RUN_UNDER"
    fi
    
    case "$1" in
        start)
            daemon $USER_FLAG -- vmrun -T player start "$VM" nogui &>/dev/null &
            ;;
        stop)
            vmrun -T player suspend "$VM" &>/dev/null
            while [[ "$(vmrun -T player list | grep -o "$VM")" == "$VM" ]]; do
              sleep 1
            done
            ;;
        *)
            echo "Usage: $0 start|stop" >&2
            exit 3
            ;;
    esac
    
  • 使脚本可运行:

    chmod a+x /etc/init.d/vm_server_name
    
  • 将脚本添加到标准 Linux 服务启动/关闭运行级别。数字确保它是最后启动的程序之一,也是最先关闭的程序之一:

    update-rc.d vm_server_name defaults 99 01
    

笔记:

  • 当您修改 root 拥有的文件时,您可能需要“sudo”所有命令。
  • 我设置了一个循环,这样在关机时,脚本不会返回操作系统,直到它完全挂起客户操作系统。我不知道这是否有必要,但这似乎是个好主意。它肯定会减慢主机操作系统的关机速度,但在我看来这是值得的。
  • 如果您需要与客户操作系统的本地 GUI 进行交互,请通过运行暂停服务器/etc/init.d/vm_server_name stop,然后使用 VMware 播放器 GUI 在本地启动它。完成后,暂停它并运行/etc/init.d/vm_server_name start以再次启动无头实例。

答案4

超级用户

可以使用这个非常古老的免费微软包装器(谷歌搜索有关 srvany 的解释):ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/srvany_x86.exe

或者也有商业工具:http://www.coretechnologies.com/products/AlwaysUp/Apps/RunVMwarePlayerAsAService.html

相关内容