Loading virtualbox_bin/PKGBUILD +23 −19 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ pkgname=virtualbox_bin pkgver=4.0.4 _build=70112 pkgrel=1 pkgrel=2 pkgdesc='Oracle VM VirtualBox Binary Edition' arch=('i686' 'x86_64') url='http://virtualbox.org' Loading @@ -25,17 +25,23 @@ optdepends=('virtualbox-ext-oracle: for Oracle extensions' 'pulseaudio: for PulseAudio support') provides=("virtualbox=${pkgver}") conflicts=('virtualbox' 'virtualbox-ose' 'virtualbox-modules') backup=('etc/vbox/vbox.cfg') install='virtualbox.install' backup=('etc/conf.d/vbox') install='install' _arch='x86' [ "${CARCH}" = 'x86_64' ] && _arch='amd64' source=("VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run::http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run" source=( "VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run::http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run" 'config' '10-vboxdrv.rules' 'vboxdrv') md5sums=('9598e9386cd31984c86381a41f673d7c' 'vboxdrv' 'vboxweb' ) md5sums=('2a382c44557d06fa7337b045902baaa0' 'd61eb2cab419c6250e30975f546e9f66' '98859bfca9ef2ebf2ea43eb9123316fc' '8b3b5fb34d5e8594ee873d7947f3d09b') [ "${CARCH}" = 'x86_64' ] && md5sums[0]='2a382c44557d06fa7337b045902baaa0' 'b10ba7fadee69a6a5c9692c0b0262b53' '8bd523861a44efdb82a19a9b7daf0a0c') [ "${CARCH}" = 'i686' ] && md5sums[0]='9598e9386cd31984c86381a41f673d7c' build() { # Check and unpack the run package via sh(1) Loading Loading @@ -76,13 +82,16 @@ build() { rm -Rf build cd "${pkgdir}/opt/VirtualBox" # Install rc.d script for module compilation # Install rc.d scripts install -Dm0755 "${srcdir}/vboxdrv" "${pkgdir}/etc/rc.d/vboxdrv" install -Dm0755 "${srcdir}/vboxweb" "${pkgdir}/etc/rc.d/vboxweb" # Replace init script stuff # Update Arch way of life in VBox.sh sed -i -e 's#CONFIG="/etc/vbox/vbox.cfg"#CONFIG="/etc/conf.d/vbox"#' \ "${pkgdir}/opt/VirtualBox/VBox.sh" sed -i -e 's,sudo /etc/init.d/vboxdrv setup,/etc/rc.d/vboxdrv setup,g' \ "${pkgdir}/opt/VirtualBox/VBox.sh" sed -i -e 's,sudo /etc/init.d/vboxdrv restart,modprobe vboxdrv,g' \ sed -i -e 's,sudo /etc/init.d/vboxdrv restart,/etc/rc.d/vboxdrv restart,g' \ "${pkgdir}/opt/VirtualBox/VBox.sh" # Install udev rules Loading @@ -107,13 +116,8 @@ build() { install -d "${pkgdir}/usr/share/doc/${pkgname}" ln -s "/opt/VirtualBox/VirtualBox.chm" "${pkgdir}/usr/share/doc/$pkgname/VirtualBox.chm" # Symlink the license install -d "${pkgdir}/usr/share/licenses/${pkgname}" ln -s /opt/VirtualBox/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" # Setup configuration install -d "${pkgdir}/etc/vbox" echo 'INSTALL_DIR="/opt/VirtualBox"' > "${pkgdir}/etc/vbox/vbox.cfg" # Setup default configuration install -Dm0644 "${srcdir}/config" "${pkgdir}/etc/conf.d/vbox" # Create the directory below if it doesn't exist install -d "${pkgdir}/var/run/VirtualBox" Loading virtualbox_bin/config 0 → 100644 +17 −0 Original line number Diff line number Diff line # Default Installation Directory INSTALL_DIR="/opt/VirtualBox" # Try to build module if don't exist when calling start START_BUILD=yes # WebService Mandatory Variables #VBOXWEB_USER= # WebService Variables #VBOXWEB_LOGFILE= #$VBOXWEB_HOST= #$VBOXWEB_PORT= #$VBOXWEB_TIMEOUT= #$VBOXWEB_CHECK_INTERVAL= #$VBOXWEB_THREADS= #$VBOXWEB_KEEPALIVE= virtualbox_bin/virtualbox.install→virtualbox_bin/install +9 −25 Original line number Diff line number Diff line Loading @@ -14,31 +14,16 @@ post_install() { # Show warnings /bin/cat <<EOF ==> Add your user to the vboxusers group: ==> Think to add user the vboxusers group: ==> # gpasswd -a USERNAME vboxusers ==> ==> You must load vboxdrv module before starting VirtualBox: ==> # modprobe vboxdrv ==> ==> You must load vboxnetflt for Host Interface Networking: ==> # modprobe vboxnetflt ==> ==> You must load vboxnetadp for Host-Only networking: ==> # modprobe vboxnetadp ==> ==> To load it automatically, add vboxdrv module to the "MODULES" array ==> "/etc/rc.conf". ==> ==> Run \`/etc/rc.d/vboxdrv setup\` as root every time your kernel is ==> upgraded, to compile the module for the new kernel version. ==> To load virtualbox modules automatically you can add vboxdrv in your DAEMONS ==> To start virtualbox web service automatically you can add vboxweb in your DAEMONS EOF } pre_upgrade() { pre_remove # Remove the module files rm -f "/lib/modules/`uname -r`/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko # Remove any stuff remaining from the module compilation rm -Rf "/opt/VirtualBox" Loading @@ -49,16 +34,15 @@ post_upgrade() { } pre_remove() { # Unload modules (if any) for _mod in vbox{drv,netadp,netflt}; do modprobe -r $_mod &> /dev/null done # Stop running services [[ -x /etc/rc.d/vboxdrv ]] && /etc/rc.d/vboxdrv stop [[ -x /etc/rc.d/vboxweb ]] && /etc/rc.d/vboxweb stop # Remove modules [[ -x /etc/rc.d/vboxdrv ]] && /etc/rc.d/vboxdrv remove } post_remove() { # Remove the module files rm -f "/lib/modules/`uname -r`/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko # Remove any stuff remaining from the module compilation rm -Rf "/opt/VirtualBox" Loading virtualbox_bin/vboxdrv +86 −61 Original line number Diff line number Diff line Loading @@ -2,57 +2,67 @@ . /etc/rc.conf . /etc/rc.d/functions . /etc/vbox/vbox.cfg . /etc/conf.d/vbox MODLIST=() LOG="/var/log/vbox-install.log" if [ -n "$INSTALL_DIR" ]; then if [[ -n "$INSTALL_DIR" ]]; then VBOXMANAGE="$INSTALL_DIR/VBoxManage" BUILDVBOXDRV="$INSTALL_DIR/src/vboxhost/vboxdrv/build_in_tmp" BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxhost/vboxnetflt/build_in_tmp" BUILDVBOXNETADP="$INSTALL_DIR/src/vboxhost/vboxnetadp/build_in_tmp" else echo "missing vbox.cfg" echo "Missing vbox config file" exit 0 fi case "$1" in setup) stat_busy "Unloading VirtualBox kernel modules" load() { if [[ "$START_BUILD" =~ yes|YES ]]; then # check if module exists c=$(find /lib/modules/`uname -r` -name "vbox*" 2>/dev/null | wc -l) [[ $c -eq 0 ]] && setup fi stat_busy "Loading VirtualBox kernel modules" # trivial loading for module in vbox{netflt,netadp,drv}; do if grep -q "^${module}" /proc/modules; then MODLIST+=($module) modprobe -r $module modprobe $module &>/dev/null done # check for module in vbox{netflt,netadp,drv}; do if ! grep -q "^${module}" /proc/modules; then stat_fail return 1 fi done stat_done for p in /lib/modules/*; do if [ ! -d "$p/kernel" ]; then if [ -e "$p/misc/vboxdrv.ko" ]; then stat_busy "Removing old VirtualBox kernel modules from $p" rm -f "$p/misc/vbox"{drv,netadp,netflt}.ko 2>/dev/null rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null stat_done fi } unload() { stat_busy "Unloading VirtualBox kernel modules" # trivial unload for module in vbox{netflt,netadp,drv}; do if grep -q "^${module}" /proc/modules; then modprobe -r $module &>/dev/null fi done if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then stat_busy "Removing old VirtualBox netadp kernel module" find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null stat_done # check for module in vbox{netflt,netadp,drv}; do if grep -q "^${module}" /proc/modules; then stat_fail return 1 fi if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then stat_busy "Removing old VirtualBox netflt kernel module" find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null done stat_done fi if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then stat_busy "Removing old VirtualBox kernel module" find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null } remove() { stat_busy "Removing VirtualBox kernel modules" 'rm' -f "/lib/modules/$(uname -r)/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko stat_done fi stat_busy "Recompiling VirtualBox kernel modules" } setup() { remove stat_busy "Compiling VirtualBox kernel modules" LOG="/tmp/vbox-install.log" if ! $BUILDVBOXDRV \ --save-module-symvers /tmp/vboxdrv-Module.symvers \ --no-print-directory install > $LOG 2>&1; then Loading @@ -69,12 +79,27 @@ case "$1" in echo "Look at $LOG to find out what went wrong" fi stat_done stat_busy "Reloading VirtualBox kernel modules" for module in "${MODLIST[@]}"; do modprobe $module done stat_done } case "$1" in start) load ;; stop) unload ;; restart) unload load ;; setup) setup ;; remove) remove ;; *) echo "usage: $0 {setup}" echo "usage: $0 {start|stop|restart|setup|remove}" esac # vim:set ts=2 sw=2 ft=sh et: virtualbox_bin/vboxweb 0 → 100644 +90 −0 Original line number Diff line number Diff line #!/bin/bash . /etc/rc.conf . /etc/rc.d/functions . /etc/conf.d/vbox BINARY="$INSTALL_DIR/vboxwebsrv" PID=$(pidof -o %PPID $BINARY) start() { stat_busy "Starting VirtualBox Web Service"; if [[ ! -n "$PID" ]]; then [[ -n "$VBOXWEB_USER" ]] || stat_die lsmod | grep -q "vboxdrv[^_-]" || stat_die PARAMS="--background" [[ -n "$VBOXWEB_HOST" ]] && PARAMS="$PARAMS -H $VBOXWEB_HOST" [[ -n "$VBOXWEB_PORT" ]] && PARAMS="$PARAMS -p $VBOXWEB_PORT" [[ -n "$VBOXWEB_TIMEOUT" ]] && PARAMS="$PARAMS -t $VBOXWEB_TIMEOUT" [[ -n "$VBOXWEB_CHECK_INTERVAL" ]] && PARAMS="$PARAMS -i $VBOXWEB_CHECK_INTERVAL" [[ -n "$VBOXWEB_THREADS" ]] && PARAMS="$PARAMS -T $VBOXWEB_THREADS" [[ -n "$VBOXWEB_KEEPALIVE" ]] && PARAMS="$PARAMS -k $VBOXWEB_KEEPALIVE" [[ -n "$VBOXWEB_LOGFILE" ]] && PARAMS="$PARAMS -F $VBOXWEB_LOGFILE" # prevent inheriting this setting to VBoxSVC unset VBOX_RELEASE_LOG_DEST su - $VBOXWEB_USER -c "$BINARY $PARAMS" &>/dev/null # ugly: wait until the final process has forked sleep .2 PID=$(pidof -o %PPID $BINARY) if [ -n "$PID" ]; then add_daemon vboxweb stat_done else stat_die fi else stat_die fi } stop() { stat_busy "Stopping VirtualBox Web Service" if [[ -n $PID ]]; then kill $PID if [[ $? -eq 0 ]]; then rm_daemon vboxweb stat_done else stat_die fi else stat_die fi } restart() { stop && start } status() { stat_busy "Checking for VirtualBox Web Service" if [[ -n $PID ]]; then stat_done else stat_fail false fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; force-reload) restart ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac # vim:set ts=2 sw=2 ft=sh et: Loading
virtualbox_bin/PKGBUILD +23 −19 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ pkgname=virtualbox_bin pkgver=4.0.4 _build=70112 pkgrel=1 pkgrel=2 pkgdesc='Oracle VM VirtualBox Binary Edition' arch=('i686' 'x86_64') url='http://virtualbox.org' Loading @@ -25,17 +25,23 @@ optdepends=('virtualbox-ext-oracle: for Oracle extensions' 'pulseaudio: for PulseAudio support') provides=("virtualbox=${pkgver}") conflicts=('virtualbox' 'virtualbox-ose' 'virtualbox-modules') backup=('etc/vbox/vbox.cfg') install='virtualbox.install' backup=('etc/conf.d/vbox') install='install' _arch='x86' [ "${CARCH}" = 'x86_64' ] && _arch='amd64' source=("VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run::http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run" source=( "VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run::http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run" 'config' '10-vboxdrv.rules' 'vboxdrv') md5sums=('9598e9386cd31984c86381a41f673d7c' 'vboxdrv' 'vboxweb' ) md5sums=('2a382c44557d06fa7337b045902baaa0' 'd61eb2cab419c6250e30975f546e9f66' '98859bfca9ef2ebf2ea43eb9123316fc' '8b3b5fb34d5e8594ee873d7947f3d09b') [ "${CARCH}" = 'x86_64' ] && md5sums[0]='2a382c44557d06fa7337b045902baaa0' 'b10ba7fadee69a6a5c9692c0b0262b53' '8bd523861a44efdb82a19a9b7daf0a0c') [ "${CARCH}" = 'i686' ] && md5sums[0]='9598e9386cd31984c86381a41f673d7c' build() { # Check and unpack the run package via sh(1) Loading Loading @@ -76,13 +82,16 @@ build() { rm -Rf build cd "${pkgdir}/opt/VirtualBox" # Install rc.d script for module compilation # Install rc.d scripts install -Dm0755 "${srcdir}/vboxdrv" "${pkgdir}/etc/rc.d/vboxdrv" install -Dm0755 "${srcdir}/vboxweb" "${pkgdir}/etc/rc.d/vboxweb" # Replace init script stuff # Update Arch way of life in VBox.sh sed -i -e 's#CONFIG="/etc/vbox/vbox.cfg"#CONFIG="/etc/conf.d/vbox"#' \ "${pkgdir}/opt/VirtualBox/VBox.sh" sed -i -e 's,sudo /etc/init.d/vboxdrv setup,/etc/rc.d/vboxdrv setup,g' \ "${pkgdir}/opt/VirtualBox/VBox.sh" sed -i -e 's,sudo /etc/init.d/vboxdrv restart,modprobe vboxdrv,g' \ sed -i -e 's,sudo /etc/init.d/vboxdrv restart,/etc/rc.d/vboxdrv restart,g' \ "${pkgdir}/opt/VirtualBox/VBox.sh" # Install udev rules Loading @@ -107,13 +116,8 @@ build() { install -d "${pkgdir}/usr/share/doc/${pkgname}" ln -s "/opt/VirtualBox/VirtualBox.chm" "${pkgdir}/usr/share/doc/$pkgname/VirtualBox.chm" # Symlink the license install -d "${pkgdir}/usr/share/licenses/${pkgname}" ln -s /opt/VirtualBox/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" # Setup configuration install -d "${pkgdir}/etc/vbox" echo 'INSTALL_DIR="/opt/VirtualBox"' > "${pkgdir}/etc/vbox/vbox.cfg" # Setup default configuration install -Dm0644 "${srcdir}/config" "${pkgdir}/etc/conf.d/vbox" # Create the directory below if it doesn't exist install -d "${pkgdir}/var/run/VirtualBox" Loading
virtualbox_bin/config 0 → 100644 +17 −0 Original line number Diff line number Diff line # Default Installation Directory INSTALL_DIR="/opt/VirtualBox" # Try to build module if don't exist when calling start START_BUILD=yes # WebService Mandatory Variables #VBOXWEB_USER= # WebService Variables #VBOXWEB_LOGFILE= #$VBOXWEB_HOST= #$VBOXWEB_PORT= #$VBOXWEB_TIMEOUT= #$VBOXWEB_CHECK_INTERVAL= #$VBOXWEB_THREADS= #$VBOXWEB_KEEPALIVE=
virtualbox_bin/virtualbox.install→virtualbox_bin/install +9 −25 Original line number Diff line number Diff line Loading @@ -14,31 +14,16 @@ post_install() { # Show warnings /bin/cat <<EOF ==> Add your user to the vboxusers group: ==> Think to add user the vboxusers group: ==> # gpasswd -a USERNAME vboxusers ==> ==> You must load vboxdrv module before starting VirtualBox: ==> # modprobe vboxdrv ==> ==> You must load vboxnetflt for Host Interface Networking: ==> # modprobe vboxnetflt ==> ==> You must load vboxnetadp for Host-Only networking: ==> # modprobe vboxnetadp ==> ==> To load it automatically, add vboxdrv module to the "MODULES" array ==> "/etc/rc.conf". ==> ==> Run \`/etc/rc.d/vboxdrv setup\` as root every time your kernel is ==> upgraded, to compile the module for the new kernel version. ==> To load virtualbox modules automatically you can add vboxdrv in your DAEMONS ==> To start virtualbox web service automatically you can add vboxweb in your DAEMONS EOF } pre_upgrade() { pre_remove # Remove the module files rm -f "/lib/modules/`uname -r`/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko # Remove any stuff remaining from the module compilation rm -Rf "/opt/VirtualBox" Loading @@ -49,16 +34,15 @@ post_upgrade() { } pre_remove() { # Unload modules (if any) for _mod in vbox{drv,netadp,netflt}; do modprobe -r $_mod &> /dev/null done # Stop running services [[ -x /etc/rc.d/vboxdrv ]] && /etc/rc.d/vboxdrv stop [[ -x /etc/rc.d/vboxweb ]] && /etc/rc.d/vboxweb stop # Remove modules [[ -x /etc/rc.d/vboxdrv ]] && /etc/rc.d/vboxdrv remove } post_remove() { # Remove the module files rm -f "/lib/modules/`uname -r`/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko # Remove any stuff remaining from the module compilation rm -Rf "/opt/VirtualBox" Loading
virtualbox_bin/vboxdrv +86 −61 Original line number Diff line number Diff line Loading @@ -2,57 +2,67 @@ . /etc/rc.conf . /etc/rc.d/functions . /etc/vbox/vbox.cfg . /etc/conf.d/vbox MODLIST=() LOG="/var/log/vbox-install.log" if [ -n "$INSTALL_DIR" ]; then if [[ -n "$INSTALL_DIR" ]]; then VBOXMANAGE="$INSTALL_DIR/VBoxManage" BUILDVBOXDRV="$INSTALL_DIR/src/vboxhost/vboxdrv/build_in_tmp" BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxhost/vboxnetflt/build_in_tmp" BUILDVBOXNETADP="$INSTALL_DIR/src/vboxhost/vboxnetadp/build_in_tmp" else echo "missing vbox.cfg" echo "Missing vbox config file" exit 0 fi case "$1" in setup) stat_busy "Unloading VirtualBox kernel modules" load() { if [[ "$START_BUILD" =~ yes|YES ]]; then # check if module exists c=$(find /lib/modules/`uname -r` -name "vbox*" 2>/dev/null | wc -l) [[ $c -eq 0 ]] && setup fi stat_busy "Loading VirtualBox kernel modules" # trivial loading for module in vbox{netflt,netadp,drv}; do if grep -q "^${module}" /proc/modules; then MODLIST+=($module) modprobe -r $module modprobe $module &>/dev/null done # check for module in vbox{netflt,netadp,drv}; do if ! grep -q "^${module}" /proc/modules; then stat_fail return 1 fi done stat_done for p in /lib/modules/*; do if [ ! -d "$p/kernel" ]; then if [ -e "$p/misc/vboxdrv.ko" ]; then stat_busy "Removing old VirtualBox kernel modules from $p" rm -f "$p/misc/vbox"{drv,netadp,netflt}.ko 2>/dev/null rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null stat_done fi } unload() { stat_busy "Unloading VirtualBox kernel modules" # trivial unload for module in vbox{netflt,netadp,drv}; do if grep -q "^${module}" /proc/modules; then modprobe -r $module &>/dev/null fi done if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then stat_busy "Removing old VirtualBox netadp kernel module" find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null stat_done # check for module in vbox{netflt,netadp,drv}; do if grep -q "^${module}" /proc/modules; then stat_fail return 1 fi if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then stat_busy "Removing old VirtualBox netflt kernel module" find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null done stat_done fi if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then stat_busy "Removing old VirtualBox kernel module" find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null } remove() { stat_busy "Removing VirtualBox kernel modules" 'rm' -f "/lib/modules/$(uname -r)/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko stat_done fi stat_busy "Recompiling VirtualBox kernel modules" } setup() { remove stat_busy "Compiling VirtualBox kernel modules" LOG="/tmp/vbox-install.log" if ! $BUILDVBOXDRV \ --save-module-symvers /tmp/vboxdrv-Module.symvers \ --no-print-directory install > $LOG 2>&1; then Loading @@ -69,12 +79,27 @@ case "$1" in echo "Look at $LOG to find out what went wrong" fi stat_done stat_busy "Reloading VirtualBox kernel modules" for module in "${MODLIST[@]}"; do modprobe $module done stat_done } case "$1" in start) load ;; stop) unload ;; restart) unload load ;; setup) setup ;; remove) remove ;; *) echo "usage: $0 {setup}" echo "usage: $0 {start|stop|restart|setup|remove}" esac # vim:set ts=2 sw=2 ft=sh et:
virtualbox_bin/vboxweb 0 → 100644 +90 −0 Original line number Diff line number Diff line #!/bin/bash . /etc/rc.conf . /etc/rc.d/functions . /etc/conf.d/vbox BINARY="$INSTALL_DIR/vboxwebsrv" PID=$(pidof -o %PPID $BINARY) start() { stat_busy "Starting VirtualBox Web Service"; if [[ ! -n "$PID" ]]; then [[ -n "$VBOXWEB_USER" ]] || stat_die lsmod | grep -q "vboxdrv[^_-]" || stat_die PARAMS="--background" [[ -n "$VBOXWEB_HOST" ]] && PARAMS="$PARAMS -H $VBOXWEB_HOST" [[ -n "$VBOXWEB_PORT" ]] && PARAMS="$PARAMS -p $VBOXWEB_PORT" [[ -n "$VBOXWEB_TIMEOUT" ]] && PARAMS="$PARAMS -t $VBOXWEB_TIMEOUT" [[ -n "$VBOXWEB_CHECK_INTERVAL" ]] && PARAMS="$PARAMS -i $VBOXWEB_CHECK_INTERVAL" [[ -n "$VBOXWEB_THREADS" ]] && PARAMS="$PARAMS -T $VBOXWEB_THREADS" [[ -n "$VBOXWEB_KEEPALIVE" ]] && PARAMS="$PARAMS -k $VBOXWEB_KEEPALIVE" [[ -n "$VBOXWEB_LOGFILE" ]] && PARAMS="$PARAMS -F $VBOXWEB_LOGFILE" # prevent inheriting this setting to VBoxSVC unset VBOX_RELEASE_LOG_DEST su - $VBOXWEB_USER -c "$BINARY $PARAMS" &>/dev/null # ugly: wait until the final process has forked sleep .2 PID=$(pidof -o %PPID $BINARY) if [ -n "$PID" ]; then add_daemon vboxweb stat_done else stat_die fi else stat_die fi } stop() { stat_busy "Stopping VirtualBox Web Service" if [[ -n $PID ]]; then kill $PID if [[ $? -eq 0 ]]; then rm_daemon vboxweb stat_done else stat_die fi else stat_die fi } restart() { stop && start } status() { stat_busy "Checking for VirtualBox Web Service" if [[ -n $PID ]]; then stat_done else stat_fail false fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; force-reload) restart ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac # vim:set ts=2 sw=2 ft=sh et: