У меня было три проблемы на хосте Linux:
Если он не отключен, вы должны нажать Return, когда VBox просит перейти в полноэкранный режим.
Деинтеграция мыши не выполняется автоматически (мой клиент непосредственно захватывает usb-мышь)
и ...
Программа VBoxControl в команде клиента savestate не выполняется.
Следующий скрипт решает все три проблемы.
Это требует от вас apt-get wmctrl и xdotool.
Гостевые дополнения должны быть установлены.
Изменить VM_NAME!
Измените DISPLAY на любой монитор, который вы хотите.
Чтобы сохранить состояние, запустите «sudo VBoxControl guestproperty set SaveStateNow 1» в клиентском терминале.
---отрежь здесь---
#!/bin/bash
VM_NAME='My Machine Name'
MAXTRIES=20
export DISPLAY=:0.1
VBoxManage startvm "$VM_NAME" &
i="0"
while [ $i -lt $MAXTRIES ]; do
echo Fullscreen try $i
wmctrl -a "VirtualBox - Information"
if [ $? == 0 ]; then
sleep 1
xdotool key "Return"
break
fi
sleep 1
i=$[$i+1]
done
i="0"
while [ $i -lt $MAXTRIES ]; do
echo Pointer try $i
GUEST_ADDITIONS_ACTIVE=`VBoxManage showvminfo "$VM_NAME" | grep "Additions run level" | cut -d : -f 2`
if [ $GUEST_ADDITIONS_ACTIVE == "1" ]; then
sleep 1
xdotool key "Super_R+i"
break
fi
sleep 1
i=$[$i+1]
done
while true; do
if [ "`VBoxManage guestproperty get "$VM_NAME" SaveStateNow`" != 'No value set!' ]; then
echo Saving...
VBoxManage guestproperty set "$VM_NAME" SaveStateNow
VBoxManage controlvm "$VM_NAME" savestate
break
fi
sleep 1
done