vboxadd-service.sh revision 2291faee92ebb5cc9722cd3f22e499900a5a411f
4632N/A#!/bin/sh
4632N/A#
4632N/A# Linux Additions Guest Additions service daemon init script.
4632N/A#
4632N/A# Copyright (C) 2006-2010 Oracle Corporation
4632N/A#
4632N/A# This file is part of VirtualBox Open Source Edition (OSE), as
4632N/A# available from http://www.virtualbox.org. This file is free software;
4632N/A# you can redistribute it and/or modify it under the terms of the GNU
4632N/A# General Public License (GPL) as published by the Free Software
4632N/A# Foundation, in version 2 as it comes in the "COPYING" file of the
4632N/A# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4632N/A# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4632N/A#
4632N/A
4632N/A# chkconfig: 35 35 65
4632N/A# description: VirtualBox Additions service
4632N/A#
4632N/A### BEGIN INIT INFO
4632N/A# Provides: vboxadd-service
4632N/A# Required-Start: vboxadd
4632N/A# Required-Stop: vboxadd
4632N/A# Default-Start: 2 3 4 5
4632N/A# Default-Stop: 0 1 6
4632N/A# Description: VirtualBox Additions Service
4632N/A### END INIT INFO
4632N/A
4632N/APATH=$PATH:/bin:/sbin:/usr/sbin
4632N/A
4632N/Asystem=unknown
4632N/Aif [ -f /etc/redhat-release ]; then
4632N/A system=redhat
4632N/A PIDFILE="/var/lock/subsys/vboxadd-service"
4632N/Aelif [ -f /etc/SuSE-release ]; then
4632N/A system=suse
4632N/A PIDFILE="/var/lock/subsys/vboxadd-service"
4632N/Aelif [ -f /etc/debian_version ]; then
4632N/A system=debian
4632N/A PIDFILE="/var/run/vboxadd-service"
4632N/Aelif [ -f /etc/gentoo-release ]; then
4632N/A system=gentoo
4632N/A PIDFILE="/var/run/vboxadd-service"
4632N/Aelif [ -f /etc/arch-release ]; then
4632N/A system=arch
4632N/A PIDFILE="/var/run/vboxadd-service"
4632N/Aelif [ -f /etc/slackware-version ]; then
4632N/A system=slackware
4632N/A PIDFILE="/var/run/vboxadd-service"
4632N/Aelif [ -f /etc/lfs-release ]; then
4632N/A system=lfs
4632N/A PIDFILE="/var/run/vboxadd-service.pid"
4632N/Aelse
4632N/A system=other
4632N/A if [ -d /var/run -a -w /var/run ]; then
4632N/A PIDFILE="/var/run/vboxadd-service"
4632N/A fi
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "redhat" ]; then
4632N/A . /etc/init.d/functions
4632N/A fail_msg() {
4632N/A echo_failure
4632N/A echo
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A echo_success
4632N/A echo
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo -n "$1"
4632N/A }
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "suse" ]; then
4632N/A . /etc/rc.status
4632N/A daemon() {
4632N/A startproc ${1+"$@"}
4632N/A }
4632N/A
4632N/A fail_msg() {
4632N/A rc_failed 1
4632N/A rc_status -v
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A rc_reset
4632N/A rc_status -v
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo -n "$1"
4632N/A }
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "debian" ]; then
4632N/A daemon() {
4632N/A start-stop-daemon --start --exec $1 -- $2
4632N/A }
4632N/A
4632N/A killproc() {
4632N/A start-stop-daemon --stop --exec $@
4632N/A }
4632N/A
4632N/A fail_msg() {
4632N/A echo " ...fail!"
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A echo " ...done."
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo -n "$1"
4632N/A }
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "gentoo" ]; then
4632N/A . /sbin/functions.sh
4632N/A daemon() {
4632N/A start-stop-daemon --start --exec $1 -- $2
4632N/A }
4632N/A
4632N/A killproc() {
4632N/A start-stop-daemon --stop --exec $@
4632N/A }
4632N/A
4632N/A fail_msg() {
4632N/A echo " ...fail!"
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A echo " ...done."
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo -n "$1"
4632N/A }
4632N/A
4632N/A if [ "`which $0`" = "/sbin/rc" ]; then
4632N/A shift
4632N/A fi
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "arch" ]; then
4632N/A USECOLOR=yes
4632N/A . /etc/rc.d/functions
4632N/A daemon() {
4632N/A $@
4632N/A test $? -eq 0 && add_daemon rc.`basename $1`
4632N/A }
4632N/A
4632N/A killproc() {
4632N/A killall $@
4632N/A rm_daemon `basename $@`
4632N/A }
4632N/A
4632N/A fail_msg() {
4632N/A stat_fail
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A stat_done
4632N/A }
4632N/A
4632N/A begin() {
4632N/A stat_busy "$1"
4632N/A }
4632N/A
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "slackware" ]; then
4632N/A daemon() {
4632N/A $1 $2
4632N/A }
4632N/A
4632N/A killproc() {
4632N/A killall $1
4632N/A rm -f $PIDFILE
4632N/A }
4632N/A
4632N/A fail_msg() {
4632N/A echo " ...fail!"
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A echo " ...done."
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo -n "$1"
4632N/A }
4632N/A
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "lfs" ]; then
4632N/A . /etc/rc.d/init.d/functions
4632N/A daemon() {
4632N/A loadproc $1 $2
4632N/A }
4632N/A
4632N/A fail_msg() {
4632N/A echo_failure
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A echo_ok
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo $1
4632N/A }
4632N/A
4632N/A status() {
4632N/A statusproc $1
4632N/A }
4632N/Afi
4632N/A
4632N/Aif [ "$system" = "other" ]; then
4632N/A fail_msg() {
4632N/A echo " ...fail!"
4632N/A }
4632N/A
4632N/A succ_msg() {
4632N/A echo " ...done."
4632N/A }
4632N/A
4632N/A begin() {
4632N/A echo -n "$1"
4632N/A }
4632N/Afi
4632N/A
4632N/Abinary=/usr/sbin/VBoxService
4632N/A
4632N/Atestbinary() {
4632N/A test -x "$binary" || {
4632N/A echo "Cannot run $binary"
4632N/A exit 1
4632N/A }
4632N/A}
4632N/A
4632N/Avboxaddrunning() {
4632N/A lsmod | grep -q "vboxguest[^_-]"
4632N/A}
4632N/A
4632N/Astart() {
4632N/A if ! test -f $PIDFILE; then
4632N/A begin "Starting VirtualBox Guest Addition service ";
4632N/A vboxaddrunning || {
4632N/A echo "VirtualBox Additions module not loaded!"
4632N/A exit 1
4632N/A }
4632N/A testbinary
4632N/A daemon $binary > /dev/null
4632N/A RETVAL=$?
4632N/A test $RETVAL -eq 0 && echo `pidof VBoxService` > $PIDFILE
4632N/A succ_msg
4632N/A fi
4632N/A return $RETVAL
4632N/A}
4632N/A
4632N/Astop() {
4632N/A if test -f $PIDFILE; then
4632N/A begin "Stopping VirtualBox Guest Addition service ";
4632N/A vboxaddrunning || {
4632N/A echo "VirtualBox Additions module not loaded!"
4632N/A exit 1
4632N/A }
4632N/A killproc $binary
4632N/A RETVAL=$?
4632N/A test $RETVAL -eq 0 && rm -f $PIDFILE
4632N/A succ_msg
4632N/A fi
4632N/A return $RETVAL
4632N/A}
4632N/A
4632N/Arestart() {
4632N/A stop && start
4632N/A}
4632N/A
4632N/A status() {
4632N/A echo -n "Checking for VBoxService"
4632N/A if [ -f $PIDFILE ]; then
4632N/A echo " ...running"
4632N/A else
4632N/A echo " ...not running"
4632N/A fi
4632N/A }
4632N/A
4632N/Acase "$1" in
4632N/Astart)
4632N/A start
4632N/A ;;
4632N/Astop)
4632N/A stop
4632N/A ;;
4632N/Arestart)
4632N/A restart
4632N/A ;;
4632N/Astatus)
4632N/A status
4632N/A ;;
4632N/Asetup)
4632N/A ;;
4632N/Acleanup)
4632N/A ;;
4632N/A*)
4632N/A echo "Usage: $0 {start|stop|restart|status}"
4632N/A exit 1
4632N/Aesac
4632N/A
4632N/Aexit $RETVAL
4632N/A