diff options
Diffstat (limited to 'net-im/ejabberd/files/ejabberd.in')
-rw-r--r-- | net-im/ejabberd/files/ejabberd.in | 114 |
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" |