--- /usr/local/portage/net-im/ejabberd/files/ejabberd-2.initd 2010-02-18 03:47:00.000000000 +0300 +++ /etc/init.d/ejabberd 2010-02-24 05:51:13.000000000 +0300 @@ -36,14 +36,25 @@ cd /var/lib/ejabberd start-stop-daemon --start --quiet --chuid jabber:jabber \ --name $BEAMNAME \ - --exec /usr/sbin/ejabberd -- -detached -noinput -smp $SMPOPT + --background \ + --pidfile "${PIDFILE}" \ + --make-pidfile \ + --exec /usr/sbin/ejabberd -- -noinput -smp $SMPOPT eend $? } stop() { ebegin "Stopping ejabberd" /usr/sbin/ejabberdctl stop - eend $? + local RETVAL=$? + if [ ${RETVAL} != 0 ]; then + eend ${RETVAL} + else + while [ $? != 1 ]; do + kill -0 `cat "${PIDFILE}"` 2> /dev/null + done + eend ${RETVAL} + fi } reload() {