summaryrefslogtreecommitdiff
path: root/net-mgmt/unifi/files/unifi.in
diff options
context:
space:
mode:
Diffstat (limited to 'net-mgmt/unifi/files/unifi.in')
-rw-r--r--net-mgmt/unifi/files/unifi.in74
1 files changed, 74 insertions, 0 deletions
diff --git a/net-mgmt/unifi/files/unifi.in b/net-mgmt/unifi/files/unifi.in
new file mode 100644
index 000000000000..c56c4fee3aee
--- /dev/null
+++ b/net-mgmt/unifi/files/unifi.in
@@ -0,0 +1,74 @@
+#!/bin/sh
+#
+# Created by: Mark Felder <feld@feld.me>
+# $FreeBSD$
+#
+
+# PROVIDE: unifi
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+#
+# Add the following line to /etc/rc.conf to enable `unifi':
+#
+# unifi_enable="YES"
+
+. /etc/rc.subr
+name=unifi
+
+rcvar=unifi_enable
+load_rc_config ${name}
+
+: ${unifi_enable:=NO}
+: ${unifi_user:=%%USERS%%}
+: ${unifi_group:=%%GROUPS%%}
+: ${unifi_chdir=%%JAVASHAREDIR%%/unifi}
+
+command_interpreter=.
+command="%%PREFIX%%/bin/java"
+command_args="-Djava.awt.headless=true -Xmx1024M -jar lib/ace.jar"
+start_cmd=start_cmd
+start_precmd=start_precmd
+stop_cmd=stop_cmd
+status_cmd=status_cmd
+pidfile="/var/run/${name}.pid"
+
+procname=$(JAVAVM_DRYRUN=yes ${command} | fgrep JAVAVM_COMMAND)
+
+start_precmd()
+{
+ if [ ! -e /var/run/unifi ] ; then
+ install -d -o %%USERS%% -g %%GROUPS%% /var/run/unifi;
+ fi
+}
+
+start_cmd()
+{
+ check_startmsgs && echo "Starting ${name}."
+ cd ${unifi_chdir}
+ daemon -u %%USERS%% -f -p ${pidfile} ${command} ${command_args} start
+}
+
+stop_cmd()
+{
+ check_startmsgs && echo "Stopping ${name}."
+ rc_pid=$(check_pidfile $pidfile $procname)
+ cd ${unifi_chdir}
+ ${command} ${command_args} stop
+ wait_for_pids $rc_pid
+}
+
+status_cmd()
+{
+ if [ -e ${pidfile} ] && $(pgrep -F ${pidfile} > /dev/null) ; then
+ mypid=$(cat ${pidfile})
+ fi
+
+ if [ ! ${mypid} = '' ]; then
+ echo "${name} is running with PID ${mypid}.";
+ else
+ echo "${name} not running?";
+ fi
+}
+
+run_rc_command "$1"