summaryrefslogtreecommitdiff
path: root/net-im/ejabberd/files/ejabberd.in
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/ejabberd/files/ejabberd.in')
-rw-r--r--net-im/ejabberd/files/ejabberd.in114
1 files changed, 79 insertions, 35 deletions
diff --git a/net-im/ejabberd/files/ejabberd.in b/net-im/ejabberd/files/ejabberd.in
index 737cd534f9d7..5132de022550 100644
--- a/net-im/ejabberd/files/ejabberd.in
+++ b/net-im/ejabberd/files/ejabberd.in
@@ -1,36 +1,80 @@
-#!/bin/sh
-
-[ -f %%PREFIX%%/etc/%%PORTNAME%%/%%PORTNAME%%.defaults ] && . %%PREFIX%%/etc/%%PORTNAME%%/%%PORTNAME%%.defaults
-
-CONFIG=%%PREFIX%%/etc/%%PORTNAME%%/%%PORTNAME%%.cfg
-INETRC=%%PREFIX%%/etc/%%PORTNAME%%/%%PORTNAME%%.inetrc
-LOG=/var/log/%%PORTNAME%%/%%PORTNAME%%.log
-SASL_LOG=/var/log/%%PORTNAME%%/sasl.log
-SPOOL=/var/spool/%%PORTNAME%%
-
-ARGS=
-
-while [ $# -ne 0 ]
-do
- PARAM=$1
- shift
- case $PARAM in
- --) break ;;
- --config) CONFIG=$1 ; shift ;;
- --log) LOG=$1 ; shift ;;
- --sasl-log) SASL_LOG=$1 ; shift ;;
- --spool) SPOOL=$1 ; shift ;;
- *) ARGS="$ARGS $PARAM" ;;
- esac
-done
-
-cd $SPOOL &&
-exec erl +K true -sname %%PORTNAME%% \
- -s %%PORTNAME%% \
- -%%PORTNAME%% config \"$CONFIG\" log_path \"$LOG\" \
- -sasl sasl_error_logger \{file,\"$SASL_LOG\"\} \
- -mnesia dir \"$SPOOL\" \
- -kernel inetrc \"${INETRC}\" \
- -pz "%%LOCALBASE%%/lib/erlang/" \
- $ERL_OPTIONS $ARGS "$@"
+#! /bin/sh
+# $FreeBSD$
+# PROVIDE: ejabberd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+# Define these ejabberd_* variables in one of these files:
+# /etc/rc.conf
+# /etc/rc.conf.local
+# /etc/rc.conf.d/ejabberd
+#
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
+#
+ejabberd_enable=${ejabberd_enable-"NO"}
+ejabberd_node=${ejabberd_node-"ejabberd@localhost"}
+
+. %%RC_SUBR%%
+
+name="ejabberd"
+rcvar=`set_rcvar`
+
+reload_cmd="ejabberd_reload"
+restart_cmd="ejabberd_reload"
+start_cmd="ejabberd_start"
+status_cmd="ejabberd_status"
+stop_cmd="ejabberd_stop"
+
+extra_commands="reload status"
+
+EJABBERDCTL=%%PREFIX%%/sbin/ejabberdctl
+EJABBERDUSER=ejabberd
+
+ejabberd_status()
+{
+ if ejabberd_checkstatus; then
+ echo "$name is running "
+ else
+ echo "$name is not running "
+ fi
+}
+
+ejabberd_checkstatus()
+{
+ su $EJABBERDUSER -c "$EJABBERDCTL --node $ejabberd_node status > /dev/null"
+}
+
+ejabberd_start()
+{
+ echo -n "Starting $name: "
+ su $EJABBERDUSER -c "$EJABBERDCTL --node $ejabberd_node start"
+ echo "$name."
+}
+
+ejabberd_stop()
+{
+ echo -n "Stopping $name: "
+ if su $EJABBERDUSER -c "$EJABBERDCTL --node $ejabberd_node stop"; then
+# sleep 2
+# killall -u ejabberd -kill
+ else
+ echo -n " failed "
+ fi
+ echo "$name."
+}
+
+ejabberd_reload()
+{
+ echo -n "Restarting $name: "
+ if ejabberd_checkstatus; then
+ su $EJABBERDUSER -c "$EJABBERDCTL --node $ejabberd_node restart"
+ else
+ ejabberd_start
+ fi
+ echo "$name."
+}
+
+load_rc_config $name
+run_rc_command "$1"