summarylogtreecommitdiffstats
path: root/vboxtool
diff options
context:
space:
mode:
authorThiago Almeida2015-07-01 14:59:39 -0300
committerThiago Almeida2015-07-01 14:59:39 -0300
commit86eda3ca0928b3dd2bff0e58ad353cb16643d762 (patch)
treef1760320c55d980f3b2ac25335f7d416557ba42e /vboxtool
downloadaur-86eda3ca0928b3dd2bff0e58ad353cb16643d762.tar.gz
Initial import
Diffstat (limited to 'vboxtool')
-rwxr-xr-xvboxtool64
1 files changed, 64 insertions, 0 deletions
diff --git a/vboxtool b/vboxtool
new file mode 100755
index 000000000000..234e4cbc88da
--- /dev/null
+++ b/vboxtool
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+daemon_name=vboxtool
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name.conf
+
+start()
+{
+ # 'vboxtoolinit start' maps to 'vboxtool autostart'; when the host boots, all sessions in
+ # the config file /etc/vboxtool/machines.conf are started
+ $su_command "vboxtool autostart" > /dev/null
+}
+
+stop()
+{
+ # 'vboxtoolinit stop' maps to 'vboxtool save'; when the host halts, all running sessions
+ # are saved, instead of stopped.
+ $su_command "vboxtool save" > /dev/null
+}
+
+if [ -f "$config_file" ]
+then
+ . "$config_file"
+else
+ echo "Error: $config_file does not exist. Exiting."
+ exit 1
+fi
+
+if [ ! -n "$vbox_user" ]
+then
+ echo "Error: vbox_user not defined in $config_file. Exiting."
+ exit 1
+fi
+
+# Implementation of user control, execute several commands as another (predefined) user,
+# thus freeing the main script vboxtool from any user related issues.
+su_command="su - $vbox_user -c"
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name"
+ start
+ add_daemon $daemon_name
+ stat_done
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name"
+ stop
+ rm_daemon $daemon_name
+ stat_done
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0