]> git.pld-linux.org Git - packages/VirtualBox.git/blob - vboxautostart.init
a41aa3cb2c78a8ca5f771517f375a45afa72bf75
[packages/VirtualBox.git] / vboxautostart.init
1 #!/bin/sh
2 #
3 # VirtualBox autostart service init script.
4 #
5 # chkconfig:    35 35 65
6 # description: VirtualBox autostart service
7 # processname:  VBoxAutostart
8 # config:       /etc/vbox/autostart.cfg
9 #
10
11 # Source function library
12 . /etc/rc.d/init.d/functions
13
14 VBOXAUTOSTART_DB=/etc/vbox
15 VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
16
17 # Get service config - may override defaults
18 [ -f /etc/sysconfig/virtualbox ] && . /etc/sysconfig/virtualbox
19
20 start_daemon() {
21         local user="$1"
22         shift
23         daemon --user $user "$@"
24 }
25
26 start() {
27         # Check if the service is already running?
28         if [ -f /var/lock/subsys/vboxautostart ]; then
29                 msg_already_running "VirtualBox Autostart"
30                 return
31         fi
32
33     [ -z "$VBOXAUTOSTART_DB" ] && exit 0
34     [ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0
35
36         msg_starting "Starting VirtualBox VMs configured for autostart"
37
38     local user PARAMS="--background --start --config $VBOXAUTOSTART_CONFIG"
39
40     # prevent inheriting this setting to VBoxSVC
41     unset VBOX_RELEASE_LOG_DEST
42
43     for user in `ls $VBOXAUTOSTART_DB/*.start 2>/dev/null`; do
44                 user=$(basename $user | sed -ne "s/\(.*\).start/\1/p")
45         start_daemon $user $binary $PARAMS
46     done
47
48         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/vboxautostart
49 }
50
51 stop() {
52         if [ ! -f /var/lock/subsys/vboxautostart ]; then
53                 msg_not_running "VirtualBox Autostart"
54                 return
55         fi
56
57     [ -z "$VBOXAUTOSTART_DB" ] && exit 0
58     [ -z "$VBOXAUTOSTART_CONFIG" ] && exit 0
59
60         # Stop daemons.
61         msg_stopping "VirtualBox Autostart"
62
63     local user PARAMS="--stop --config $VBOXAUTOSTART_CONFIG"
64
65     # prevent inheriting this setting to VBoxSVC
66     unset VBOX_RELEASE_LOG_DEST
67
68     for user in `ls $VBOXAUTOSTART_DB/*.stop 2>/dev/null`; do
69                 user=$(basename $user | sed -ne "s/\(.*\).stop/\1/p")
70         start_daemon $user $binary $PARAMS
71     done
72
73         rm -f /var/lock/subsys/vboxautostart
74 }
75
76 condrestart() {
77         if [ ! -f /var/lock/subsys/vboxautostart ]; then
78                 msg_not_running "VirtualBox Autostart"
79                 RETVAL=$1
80                 return
81         fi
82
83         stop
84         start
85 }
86
87 RETVAL=0
88 # See how we were called.
89 case "$1" in
90   start)
91         start
92         ;;
93   stop)
94         stop
95         ;;
96   restart)
97         stop
98         start
99         ;;
100   try-restart)
101         condrestart 0
102         ;;
103   force-reload)
104         condrestart 7
105         ;;
106   *)
107         msg_usage "$0 {start|stop|restart|try-restart|force-reload}"
108         exit 3
109 esac
110
111 exit $RETVAL
This page took 0.079887 seconds and 3 git commands to generate.