Назад | Перейти на главную страницу

VMware Player - запускается как служба

Можно ли запустить проигрыватель VMware как службу Windows, чтобы пользователю не приходилось входить в систему для запуска проигрывателя?

Сервер Vmware - правильный инструмент для работы виртуальной машины в фоновом режиме, а не Vmware Player.

Приносим извинения за поздний ответ. Я пытался понять это сегодня. Я наткнулся на этот ответ и решил, что сообщу SF.

Вы действительно можете ...

  • Добавьте это в свой файл конфигурации VMX, чтобы VMWare Player не отображал пользовательский интерфейс:

    msg.noOk = "ИСТИНА"

  • Получить instsrv.exe из Комплект ресурсов Windows Server создать свой сервис

  • При запуске используйте пакетный файл для вызова только что созданной службы

Пошаговые инструкции можно найти здесь:

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

Я знаю, что это старый вопрос, но я искал по всему Интернету решение этой проблемы и не смог найти ничего более всеобъемлющего, чем то, чем я хотел бы поделиться.

Да, vmware player можно использовать как службу для Linux (для Windows есть отдельный ответ); это легко, и у меня нет никаких причин не делать этого. Это особенно удобно для размещения безголового сервера с безголового сервера.

Другой вариант, ориентированный на VMware, VMware Server, устарел, и единственный известный мне вариант с нулевой стоимостью - VirtualBox. Если вам это нравится больше, чем VMWare Player, больше возможностей для вас, но я знаю VMWare Player и не вижу причин не использовать хорошо поддерживаемый путь для получения того, что я хочу.

Предположительно, вы захотите, чтобы он запускался под учетной записью без полномочий root и запускался и завершался в стандартное время запуска / завершения службы. Если это так, то вот как это настроить:

  • Получите пакет демона (обычно не устанавливается по умолчанию):

    apt-get install daemon
    
  • Загрузите VMware Player и VMware VIX с сайта vmware.com и установите их, чтобы получить движок виртуальной машины и двоичный файл vmrun (управление выполнением виртуальной машины из командной строки) VIX.

  • Добавьте сервис в стартап, создав /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
    

Ноты:

  • Вам, вероятно, потребуется выполнить sudo для всех команд, когда вы изменяете файлы, принадлежащие root.
  • Я вставил цикл, чтобы при завершении работы сценарий не возвращался в ОС, пока он полностью не приостановил работу гостевой ОС. Не знаю, нужно это или нет, но идея показалась хорошей. Это определенно замедлит завершение работы основной ОС, но, на мой взгляд, оно того стоит.
  • Если вам нужно взаимодействовать с локальным графическим интерфейсом гостевой ОС, приостановите сервер, запустив /etc/init.d/vm_server_name stop а затем запустите его локально с помощью графического интерфейса VMware player. После завершения приостановите его и запустите /etc/init.d/vm_server_name start чтобы снова запустить безголовый экземпляр.

Из Суперпользователь

Можно использовать эту очень старую бесплатную оболочку microsoft (объяснения по srvany можно найти в Google): ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/srvany_x86.exe

Или есть еще и коммерческие инструменты: http://www.coretechnologies.com/products/AlwaysUp/Apps/RunVMwarePlayerAsAService.html