Created
February 25, 2010 19:39
-
-
Save sarcilav/314956 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| # | |
| # chkconfig: - 91 35 | |
| # description: Starts and stops vbox autostart VMs. | |
| ### BEGIN INIT INFO | |
| # Provides: vbox | |
| # Required-Start: $network $named $vboxdrv | |
| # Required-Stop: $network $named | |
| # Default-Start: | |
| # Default-Stop: 0 1 2 3 4 5 6 | |
| # Short-Description: Autostart some Virtual Box VMs | |
| # Description: Autostart some Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file | |
| ### END INIT INFO | |
| . /etc/rc.d/init.d/functions | |
| MANAGE_CMD=VBoxManage | |
| [ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox | |
| prog=$"Virtual Box Machines" | |
| start() | |
| { | |
| echo -n $"Starting $prog: " | |
| RETVAL=0 | |
| for vbox_name in ${VBOX_AUTOSTART} | |
| do | |
| SERVS=1 | |
| echo -n "${vbox_name} " | |
| daemon $MANAGE_CMD startvm "${vbox_name}" -type vrdp >/dev/null 2>&1 | |
| RETVAL=$? | |
| [ "$RETVAL" -eq 0 ] || break | |
| done | |
| if [ -z "$SERVS" ]; then | |
| echo -n "no virtual machines configured " | |
| failure | |
| RETVAL=6 | |
| else | |
| if [ "$RETVAL" -eq 0 ]; then | |
| success $"vbox startup" | |
| touch /var/lock/subsys/vbox | |
| else | |
| failure $"vbox start" | |
| fi | |
| fi | |
| echo | |
| return "$RETVAL" | |
| } | |
| stop() | |
| { | |
| echo -n $"Shutting down $prog: " | |
| for vbox_name in ${VBOX_AUTOSTART} | |
| do | |
| echo -n "${vbox_name} " | |
| runuser root -c "$MANAGE_CMD -q controlvm "${vbox_name}" savestate" >/dev/null 2>&1 | |
| done | |
| RETVAL=$? | |
| [ "$RETVAL" -eq 0 ] && success $"vbox shutdown" || \ | |
| failure $"vbox shutdown" | |
| echo | |
| [ "$RETVAL" -eq 0 ] && rm -f /var/lock/subsys/vbox | |
| return "$RETVAL" | |
| } | |
| status() | |
| { | |
| for vbox_name in ${VBOX_AUTOSTART} | |
| do | |
| echo -n "${vbox_name} " | |
| $MANAGE_CMD showvminfo "${vbox_name}"|grep "^State:\s*.*$" | |
| done | |
| } | |
| case "$1" in | |
| start) | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| restart|force-reload) | |
| stop | |
| start | |
| ;; | |
| status) | |
| status | |
| ;; | |
| *) | |
| echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 | |
| exit 3 | |
| ;; | |
| esac | |
| : |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment