
прикуольная штука может введу ее, спасибо за пояснения.
Но меня очень интересует все же скрипт
#!/bin/sh
#v0.4
TIMEOUT=30 #Таймаут в секундах на заверщение работы. =DELAY*TIMEOUT. Для каждой виртуальной машины
DELAY=2 #Задержка проверки.
STARTDELAY=5 #Задержка в секундах перед стартом следующей машины
vms="MAPiNFO" #Список виртуальных машин
case $1 in
#START
start)
for vm in $vms
do
if /usr/bin/VBoxManage showvminfo "$vm" | grep "running" -c > /dev/null
then echo Virtual Machine "$vm" already running
else
VBoxManage startvm "$vm" -type vrdp
sleep $STARTDELAY
fi
done
;;
#STOP
stop)
for vm in $vms #Виртуальные машины через пробел. Регистрозависимо.
do
COUNT=1
if /usr/bin/VBoxManage showvminfo "$vm" | grep "running" -c > /dev/null
then /usr/bin/VBoxManage controlvm "$vm" acpipowerbutton #Команда "нажать кнопку питания"
# Гостевая машина должна выполнять какое-либо действие (логично, что это выключение или спячка)
# при нажатии кнопки питания. Иначе она будет просто убита по таймауту.
# К примеру, cерверные версии Windows, по умолчанию, без входа в систему не реагируют на кнопку питания.
echo -n Stopping Virtual Machine $vm.
until [ "$COUNT" -gt "$TIMEOUT" ]
do
sleep $DELAY
echo -n .
if /usr/bin/VBoxManage showvminfo "$vm" | grep "powered off" -c > /dev/null
then echo "done"
break
fi
let "COUNT += 1"
done
if [ "$COUNT" -gt "$TIMEOUT" ]
then echo -e '\E[31;40mtimeout. "$vm" will be terminated.'; tput sgr0
fi
else
echo Virtual Machine "$vm" not running
fi
done
# killall -r VBox #На всякий случай убить все VBox`ы
;;
#RESTART
restart)
$0 stop
$0 start
;;
#STATUS
status)
for vm in $vms
do
echo Virtual Machine \"$vm\" is $(/usr/bin/VBoxManage showvminfo $vm | grep "State" | awk '{print $2" "$3" "$4 $5}')
done
;;
#LIST ALL VMs
list)
VBoxManage list vms
;;
#USAGE
*)
echo "Usage: /etc/init.d/vboxctrl (start|stop|restart|status|list)"
exit 1;
;;
esac
Помогите все же с скриптом.. мне это реально нужней. А то постоянно запускать руками виртуальные машины после перезагрузки и останавливать перед устал я. Но вот доработать его не могу сам.. он у меня косячит в итоге

Или объясните, каким образом то что Вы предлагаете поможет мне решить мой вопрос.
Пользователь решил продолжить мысль [time]31 Октябрь 2014, 00:46:50[/time]:
case $1 in
#START
start)
for vm in $vms
do
if /usr/bin/VBoxManage showvminfo "$vm" | grep "running" -c > /dev/$
then echo Virtual Machine "$vm" already running
else
$SU /usr/bin/VBoxManage startvm "$vm" -type vrdp
sleep $STARTDELAY
fi
done
;;
При такой раскладке пишет мне вот что:
root@srv01:~# /etc/init.d/vboxctrl start
0
VBoxManage: error: Could not find a registered machine named 'MAPiNFO'
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "FindMachine(Bstr(VMNameOrUuid).raw(), machine.asOutParam())" at line 2495 of file VBoxManageInfo.cpp
su: неверный ключ — «t»
Использование: su [параметры] [ПОЛЬЗОВАТЕЛЬ]
Параметры:
-c, --command КОМАНДА передать КОМАНДУ вызываемой оболочке
-h, --help показать данное сообщение и закончить работу
-, -l, --login запускать оболочку как регистрационную
-m, -p,
--preserve-environment не сбрасывать переменные окружения и
сохранить запустившую оболочку
-s, --shell ОБОЛОЧКА использовать ОБОЛОЧКУ
вместо значения из файла passwd
Вот помогите разобраться с этим моментом