]> git.pld-linux.org Git - packages/ejabberd.git/blobdiff - ejabberd.init
- rel 3; stop_kindly is too annoying for users
[packages/ejabberd.git] / ejabberd.init
index d5359b55c79c3397a48ea27b1c132576e6e6e493..bffcda629961abb83ef6a3df3d7de3bdeab67932 100644 (file)
 # 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}"
@@ -89,6 +90,3 @@ case "$1" in
 esac
 
 exit $RETVAL
-
-# This must be last line !
-# vi:syntax=sh:tw=78:ts=8:sw=4
This page took 0.028211 seconds and 4 git commands to generate.