# Get service config - may override defaults
[ -f /etc/sysconfig/ejabberd ] && . /etc/sysconfig/ejabberd
-# See how we were called.
-case "$1" in
- start)
+EJABBERD_DOC_PATH="@EJABBERD_DOC_PATH@"
+EJABBERD_PID_PATH=/var/run/jabber/ejabberd.pid
+export EJABBERD_DOC_PATH EJABBERD_PID_PATH
+
+start() {
# Check if the service is already running?
if [ ! -f /var/lock/subsys/ejabberd ]; then
- export ERL_MAX_PORTS ERL_FULLSWEEP_AFTER
msg_starting ejabberd
- daemon /usr/sbin/ejabberd
+ daemon --user jabber /usr/sbin/ejabberdctl start
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
- touch /var/lock/subsys/ejabberd
+ msg_starting "ejabberd start confirmation"
+ daemon --user jabber /usr/sbin/ejabberdctl started
+ RETVAL=$?
fi
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd
else
msg_already_running ejabberd
fi
- ;;
- stop)
+}
+
+stop() {
# Stop daemons.
if [ -f /var/lock/subsys/ejabberd ]; then
- msg_stopping ejabberd
- /usr/sbin/ejabberdctl ejabberd@`hostname` stop 2>/dev/null
+ msg_stopping ejabberd ; busy
+ out=$(/bin/su - jabber -s /bin/sh -c "/usr/sbin/ejabberdctl stop" 2>&1)
RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ out2=$(/bin/su - jabber -s /bin/sh -c "/usr/sbin/ejabberdctl stopped" 2>&1)
+ RETVAL=$?
+ fi
if [ $RETVAL -eq 0 ]; then
ok
else
fail
+ [ -n "$out" ] && echo $out
+ [ -n "$out2" ] && echo $out2
fi
rm -f /var/lock/subsys/ejabberd
else
msg_not_running ejabberd
fi
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
;;
restart)
- $0 stop
- sleep 2
- $0 start
+ stop
+ start
;;
reload|force-reload)
if [ -f /var/lock/subsys/ejabberd ]; then
- msg_reloading ejabberd
- busy
- /usr/sbin/ejabberdctl ejabberd@`hostname` restart
+ stop
+ start
RETVAL=$?
- if [ $RETVAL -eq 0 ]; then
- ok
- else
- RETVAL=1
- fail
- fi
else
msg_not_running ejabberd
RETVAL=7
fi
;;
status)
- EPMDOUT=`@libdir@/erlang/bin/epmd -names`
- echo "$EPMDOUT" | head -n 1
- echo "$EPMDOUT" | grep ejabberd
+ status --pidfile $EJABBERD_PID_PATH ejabberd
RETVAL=$?
- if [ "$RETVAL" -ne "0" ] ; then
- if [ -f /var/lock/subsys/ejabberd ]; then
- nls "%s dead but subsys locked" "ejabberd"
- RETVAL=2
- else
- nls "%s is stopped" "ejabberd"
- RETVAL=3
- fi
- fi
;;
*)
msg_usage "$0 {start|stop|status|restart|reload|force-reload}"
esac
exit $RETVAL
-
-# This must be last line !
-# vi:syntax=sh:tw=78:ts=8:sw=4