Risposte:
Vmware Server è lo strumento corretto per eseguire una VM in background, non Vmware Player.
Ci scusiamo per la risposta in ritardo con questo. Stavo cercando di capirlo oggi. Ho trovato questa risposta, ho pensato di far sapere a SF.
Puoi davvero ...
Aggiungi questo al tuo file di configurazione VMX per impostare VMWare Player in modo che non mostri l'interfaccia utente:
msg.noOk = "TRUE"
Ottieni instsrv.exe da un Resource Kit di Windows Server per creare il tuo servizio
All'avvio un file batch chiama il servizio appena creato
Le istruzioni dettagliate sono disponibili qui:
http://research.stowers-institute.org/dct/docs/admin/VMwarePlayerService.htm
So che questa è una vecchia domanda, ma ho cercato su Internet una soluzione e non sono riuscito a trovare nulla di così completo come quello che vorrei condividere.
Sì, è possibile utilizzare vmware player come servizio per Linux (esiste una risposta separata per Windows); è facile e non c'è motivo per cui possa pensare di non farlo. È particolarmente utile per l'hosting di un server senza testa da un server senza testa.
L'altra scelta orientata a VMware, VMware Server, è obsoleta e l'unica altra scelta di $ 0 che conosco è VirtualBox. Se ti piace di più rispetto a VMWare Player, più potenza per te, ma conosco VMWare Player e non vedo un motivo per non utilizzare un percorso ben supportato per ottenere ciò che voglio.
Presumibilmente ti consigliamo di eseguirlo con un account non root e di avviarlo e spegnerlo ai tempi standard di avvio / arresto del servizio. In tal caso, ecco come configurarlo:
Ottieni il pacchetto daemon (di solito non installato per impostazione predefinita):
apt-get install daemon
Scarica VMware Player e VMware VIX da vmware.com e installali per ottenere il motore VM e il file binario vmrun (controllo da riga di comando dell'esecuzione di vm) di VIX.
Aggiungi il servizio all'avvio creando /etc/init.d/<vm_server_name>
. Potrebbe assomigliare a questo:
#! /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
Rendi eseguibile lo script:
chmod a+x /etc/init.d/vm_server_name
Aggiungi lo script ai runlevel di avvio / arresto del servizio Linux standard. I numeri assicurano che sia una delle ultime cose iniziate e la prima a essere chiusa:
update-rc.d vm_server_name defaults 99 01
Appunti:
/etc/init.d/vm_server_name stop
e quindi avviarlo localmente utilizzando la GUI del lettore VMware. Al termine, sospenderlo ed eseguire /etc/init.d/vm_server_name start
per avviare nuovamente l'istanza senza testa.Da SuperUser
È possibile utilizzare questo molto vecchio wrapper gratuito di microsoft (google per spiegazioni su srvany): ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/srvany_x86.exe
Oppure ci sono anche strumenti commerciali: http://www.coretechnologies.com/products/AlwaysUp/Apps/RunVMwarePlayerAsAService.html