Réponses:
Vmware Server est l'outil approprié pour exécuter une machine virtuelle en arrière-plan, pas Vmware Player.
Désolé pour la réponse tardive avec cela. J'essayais de comprendre cela aujourd'hui. Je suis tombé sur cette réponse, j'ai pensé que je le ferais savoir à SF.
Vous pouvez en fait ...
Ajoutez ceci à votre fichier de configuration VMX pour que VMWare Player ne montre pas l'interface utilisateur:
msg.noOk = "TRUE"
Obtenez instsrv.exe à partir d'un kit de ressources Windows Server pour créer votre propre service
Au démarrage, un fichier de commandes appelle le service que vous venez de rendre
Des instructions détaillées peuvent être trouvées ici:
http://research.stowers-institute.org/dct/docs/admin/VMwarePlayerService.htm
Je sais que c'est une vieille question, mais j'ai cherché partout sur Internet une solution à cela et je n'ai rien trouvé d'aussi complet que ce que j'aimerais partager.
Oui, il est possible d'utiliser vmware player en tant que service pour Linux (il existe une réponse distincte pour Windows); c'est facile et je n'ai aucune raison de ne pas le faire. C'est particulièrement bien pour héberger un serveur sans tête à partir d'un serveur sans tête.
L'autre choix orienté VMware, VMware Server, est obsolète et le seul autre choix à 0 $ que je connaisse est VirtualBox. Si vous aimez mieux que VMWare Player, plus de pouvoir pour vous, mais je connais VMWare Player et je ne vois aucune raison de ne pas utiliser un chemin bien pris en charge pour obtenir ce que je veux.
Vraisemblablement, vous souhaiterez qu'il s'exécute sous un compte non root et qu'il démarre et s'arrête aux heures de démarrage / d'arrêt du service standard. Si tel est le cas, voici comment le configurer:
Obtenez le package démon (généralement non installé par défaut):
apt-get install daemon
Téléchargez VMware Player et VMware VIX depuis vmware.com et installez-les pour obtenir le moteur VM et le binaire vmrun (contrôle en ligne de commande de l'exécution de vm) de VIX.
Ajoutez le service au démarrage en créant /etc/init.d/<vm_server_name>
. Cela pourrait ressembler à ceci:
#! /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
Rendez le script exécutable:
chmod a+x /etc/init.d/vm_server_name
Ajoutez le script aux niveaux d'exécution de démarrage / arrêt du service Linux standard. Les chiffres garantissent que c'est l'une des dernières choses démarrées et les premières à être fermées:
update-rc.d vm_server_name defaults 99 01
Remarques:
/etc/init.d/vm_server_name stop
, puis démarrez-le localement à l'aide de l'interface graphique du lecteur VMware. Une fois terminé, suspendez-le et exécutez /etc/init.d/vm_server_name start
pour redémarrer l'instance sans tête.De SuperUser
Il est possible d'utiliser ce très ancien wrapper gratuit de Microsoft (Google pour des explications sur srvany): ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/srvany_x86.exe
Ou il existe également des outils commerciaux: http://www.coretechnologies.com/products/AlwaysUp/Apps/RunVMwarePlayerAsAService.html