Antworten:
VMware Server ist das richtige Tool zum Ausführen einer VM im Hintergrund, nicht VMware Player.
Entschuldigung für die späte Antwort. Ich habe heute versucht, das herauszufinden. Ich bin auf diese Antwort gestoßen und dachte, ich würde SF Bescheid geben.
Sie können tatsächlich ...
Fügen Sie dies Ihrer VMX-Konfigurationsdatei hinzu, um festzulegen, dass VMWare Player die Benutzeroberfläche nicht anzeigt:
msg.noOk = "TRUE"
Rufen Sie instsrv.exe aus einem Windows Server Resource Kit ab , um Ihren eigenen Dienst zu erstellen
Lassen Sie beim Start eine Batch-Datei den Dienst aufrufen, den Sie gerade erstellt haben
Eine Schritt-für-Schritt-Anleitung finden Sie hier:
http://research.stowers-institute.org/dct/docs/admin/VMwarePlayerService.htm
Ich weiß, dass dies eine alte Frage ist, aber ich habe im ganzen Internet nach einer Lösung dafür gesucht und konnte nichts finden, das so umfassend ist wie das, was ich teilen möchte.
Ja, es ist möglich, VMware Player als Dienst für Linux zu verwenden (für Windows gibt es eine separate Antwort). Es ist einfach und es gibt keinen Grund, warum ich mir vorstellen kann, es nicht zu tun. Es eignet sich besonders zum Hosten eines Headless-Servers von einem Headless-Server.
Die andere VMware-orientierte Option, VMware Server, ist veraltet und die einzige andere mir bekannte 0-Dollar-Option ist VirtualBox. Wenn Ihnen das besser gefällt als VMWare Player, haben Sie mehr Leistung, aber ich kenne VMWare Player und sehe keinen Grund, keinen gut unterstützten Pfad zu verwenden, um das zu bekommen, was ich will.
Vermutlich möchten Sie, dass es unter einem Nicht-Root-Konto ausgeführt wird und zu den Standard-Start- / Herunterfahrzeiten des Dienstes gestartet und heruntergefahren wird. Wenn dies der Fall ist, können Sie dies folgendermaßen konfigurieren:
Holen Sie sich das Daemon-Paket (normalerweise nicht standardmäßig installiert):
apt-get install daemon
Laden Sie VMware Player und VMware VIX von vmware.com herunter und installieren Sie sie, um die VM-Engine und die vmrun-Binärdatei (Befehlszeilensteuerung der VM-Ausführung) von VIX abzurufen.
Fügen Sie den Dienst durch Erstellen zum Start hinzu /etc/init.d/<vm_server_name>
. Es könnte ungefähr so aussehen:
#! /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
Machen Sie das Skript ausführbar:
chmod a+x /etc/init.d/vm_server_name
Fügen Sie das Skript zu den Standard-Runlevels für das Starten / Herunterfahren von Linux-Diensten hinzu. Die Zahlen stellen sicher, dass es eines der letzten Dinge ist, die gestartet und das erste, das heruntergefahren wird:
update-rc.d vm_server_name defaults 99 01
Anmerkungen:
/etc/init.d/vm_server_name stop
und starten Sie ihn lokal über die VMware Player-GUI. Unterbrechen Sie es nach Abschluss und führen Sie es aus /etc/init.d/vm_server_name start
, um die kopflose Instanz erneut zu starten.Von SuperUser
Es ist möglich, diesen sehr alten kostenlosen Microsoft-Wrapper zu verwenden (Google für Erklärungen zu srvany): ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/srvany_x86.exe
Oder es gibt auch kommerzielle Tools: http://www.coretechnologies.com/products/AlwaysUp/Apps/RunVMwarePlayerAsAService.html