SVirtualBox: ajout de l'option -r pour relancer avec restauration du snapshot
This commit is contained in:
parent
225060c0b1
commit
0805f4f522
64
SVirtualBox
64
SVirtualBox
|
@ -10,9 +10,12 @@ USAGE
|
|||
$scriptname [options] vmName
|
||||
|
||||
OPTIONS
|
||||
-n Ne rien faire excepté s'assurer que les modules VirtualBox sont chargés
|
||||
-l Lister les machines virtuelles
|
||||
-s Démarrer la machine virtuelle (par défaut)
|
||||
-n, --nop
|
||||
Ne rien faire excepté s'assurer que les modules VirtualBox sont chargés
|
||||
-l, --list
|
||||
Lister les machines virtuelles
|
||||
-s, --start
|
||||
Démarrer la machine virtuelle. C'est l'action par défaut.
|
||||
Si le nom de la machine virtuelle n'est pas spécifiée, un menu est
|
||||
affiché
|
||||
-x, --gui
|
||||
|
@ -23,12 +26,22 @@ OPTIONS
|
|||
laquelle l'accélération graphique est supportée, headless démarre la
|
||||
machine en tâche de fond, et separate affiche une fenêtre qui attaque la
|
||||
machine démarrée en tâche de fond. --separate est l'option par défaut.
|
||||
-k Arrêter la machine virtuelle (par ACPI)
|
||||
-p Mettre en veille la machine virtuelle (par ACPI)
|
||||
-H Arrêter sauvagement la machine virtuelle
|
||||
-R Redémarrer sauvagement la machine virtuelle
|
||||
-S Enregistrer l'état de la machine virtuelle
|
||||
-g Afficher le gestionnaire de machines virtuelle"
|
||||
-k, -t, --stop
|
||||
Arrêter la machine virtuelle. Les options -p, -H, -R, -S et -r
|
||||
permettent de spécifier le type d'arrêt de la machine virtuelle
|
||||
-p, --sleep
|
||||
Mettre en veille la machine virtuelle (par ACPI)
|
||||
-H, --poweroff
|
||||
Arrêter sauvagement la machine virtuelle
|
||||
-R, --reset
|
||||
Redémarrer sauvagement la machine virtuelle
|
||||
-S, --savestate
|
||||
Enregistrer l'état de la machine virtuelle
|
||||
-r, --rrestart
|
||||
Arrêter la machine, restaurer l'état du dernier snapshot puis la
|
||||
relancer.
|
||||
-g, --gui
|
||||
Afficher le gestionnaire de machines virtuelle"
|
||||
}
|
||||
|
||||
function build_arrays() {
|
||||
|
@ -68,11 +81,12 @@ function start_virtualbox() {
|
|||
}
|
||||
|
||||
action=start
|
||||
stopaction=acpipowerbutton
|
||||
type=separate
|
||||
stopaction=acpipowerbutton
|
||||
restore=
|
||||
parse_opts + "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
-n action=nop \
|
||||
-n,--nop action=nop \
|
||||
-l,--list action=list \
|
||||
-s,--start action=start \
|
||||
-x,--gui type=gui \
|
||||
|
@ -80,10 +94,11 @@ parse_opts + "${PRETTYOPTS[@]}" \
|
|||
--separate type=separate \
|
||||
-k,-t,--stop '$action=stop; stopaction=acpipowerbutton' \
|
||||
-p,--sleep '$action=stop; stopaction=acpisleepbutton' \
|
||||
-H '$action=stop; stopaction=poweroff' \
|
||||
-R '$action=stop; stopaction=reset' \
|
||||
-S '$action=stop; stopaction=savestate' \
|
||||
-g action=gui \
|
||||
-H,--poweroff '$action=stop; stopaction=poweroff' \
|
||||
-R,--reset '$action=stop; stopaction=reset' \
|
||||
-S,--savestate '$action=stop; stopaction=savestate' \
|
||||
-r,--rrestart '$action=stop; restore=1' \
|
||||
-g,--gui action=gui \
|
||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||
|
||||
"$scriptdir/EnsureVM" virtualbox || die
|
||||
|
@ -128,10 +143,23 @@ elif [ "$action" == stop ]; then
|
|||
if [ -z "$vm" -a "${rvms[*]}" ]; then
|
||||
select_vm rvms vm "Choisissez la VM à arrêter avec la méthode $stopaction"
|
||||
fi
|
||||
[ -n "$vm" ] || die
|
||||
|
||||
if [ -n "$vm" ]; then
|
||||
estep "Arrêt de $vm avec la méthode $stopaction"
|
||||
VBoxManage -q controlvm "$vm" "$stopaction"
|
||||
estep "Arrêt de $vm avec la méthode $stopaction"
|
||||
VBoxManage -q controlvm "$vm" "$stopaction" || die
|
||||
if [ -n "$restore" ]; then
|
||||
ebegin "Attente de l'arrêt"
|
||||
while true; do
|
||||
build_arrays
|
||||
array_contains svms "$vm" && break
|
||||
edot
|
||||
sleep 1
|
||||
done
|
||||
eend
|
||||
estep "Restauration du snapshot"
|
||||
VBoxManage -q snapshot "$vm" restorecurrent || die
|
||||
estep "Démarrage"
|
||||
VBoxManage -q startvm --type "$type" "$vm"
|
||||
fi
|
||||
|
||||
elif [ "$action" == gui ]; then
|
||||
|
|
Loading…
Reference in New Issue