X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ejabberd.init;h=9173899c55414e88d449526a890ecef9b9fc0bc5;hb=cc994b3cbde9c282c4b0c51b594ee59b8deebdb8;hp=634ad7d7abececef0aeb9bebd4d6f92187dc7af5;hpb=9de54d216810c375d236abade39b900a7b55a251;p=packages%2Fejabberd.git diff --git a/ejabberd.init b/ejabberd.init index 634ad7d..9173899 100644 --- a/ejabberd.init +++ b/ejabberd.init @@ -14,74 +14,80 @@ # 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 + fi +} + +reload() { + # Reload configuration + if [ ! -f /var/lock/subsys/ejabberd ]; then + msg_not_running ejabberd + RETVAL=7 + return + fi + msg_reloading ejabberd + daemon --user jabber /usr/sbin/ejabberdctl reload_config + RETVAL=$? +} + +# 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 - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - ok - else - RETVAL=1 - fail - fi - else - msg_not_running ejabberd >&2 - RETVAL=7 - fi + reload ;; status) - EPMDOUT=`/usr/lib/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 +95,3 @@ case "$1" in esac exit $RETVAL - -# This must be last line ! -# vi:syntax=sh:tw=78:ts=8:sw=4