VirtualBox как сервис

Запускаю VirtualBox как сервис. Создал в init.d скрипт

#! /sbin/runscript                                                                                                                            
DESC="W2K3SRV virtual machine"
NAME=vbox-w2k                 
SCRIPTNAME=/etc/init.d/$NAME  
MANAGE_CMD=VBoxManage         
VM_OWNER=vmowner
VM_NAME="w2k" 

 # Display "State" field from showinfo action
#
#status()
#{
 #    sudo -H -u $VM_OWNER $MANAGE_CMD --nologo showvminfo "$VM_NAME"|grep "^State:\s*.*$"
#}

start()
{
    ebegin "Starting $DESC" "$NAME"
    sudo -H -u $VM_OWNER $MANAGE_CMD --nologo startvm "$VM_NAME" -type vrdp  >/dev/null
    eend $?
}

stop()
{
    ebegin  "Stopping $DESC" "$NAME"
    sudo -H -u $VM_OWNER $MANAGE_CMD --nologo controlvm "$VM_NAME" poweroff >/dev/null
    eend $?
}

Отрабатывает и виртуальная машина стартует.
Но не нравится мне скрипт :(. Нет проверки при старте, что машина не запущена (например напрямую в GUI).
Не хватает тяму сделать скрипт универсальным.
Раньше все делалось внутри скрипта, а сейчас скрипт только часть сценария запуска-остановки сервиса.
Как его докрутить в свете действующей “идеологии”?

Очень просто. Вы можете переписать скрипт или написать патч к нему и поместить его в свой шаблон.

Если б было просто (для меня), не писал бы.
Мне непонятен механизм запуска сервиса, отсюда и непонятки в требованиях к скрипту.
Если есть дока на сей счет, буду признателен за сслылку.
Вопрос как раз в том КАК переписать этот скрипт.

Вот и скрипт по запуску stunnel отрабатывает криво в части остановки сервиса. По крайней мере, если stunnel обрабатывает несколько портов, то stop - start не проходит, нужно руками прибивать то, что осталось после предыдущего старта.

Вот здесь все очень хорошо написано.

Спасибо. Очень толково все расписано.