92 lines
2.2 KiB
Diff
92 lines
2.2 KiB
Diff
Description: adjust ejabberd.init.template for Debian
|
|
ejabberd's init script is very basic and needs to be adjusted and extended
|
|
to work properly on Debian systems and to comply with the Debian Policy.
|
|
Author: Philipp Huebner <debalance@debian.org>
|
|
|
|
Index: ejabberd/ejabberd.init.template
|
|
===================================================================
|
|
--- ejabberd.orig/ejabberd.init.template
|
|
+++ ejabberd/ejabberd.init.template
|
|
@@ -16,17 +16,29 @@
|
|
|
|
set -o errexit
|
|
|
|
-DIR=@ctlscriptpath@
|
|
+. /lib/lsb/init-functions
|
|
+
|
|
+DIR=/usr/sbin
|
|
CTL="$DIR"/ejabberdctl
|
|
-USER=@installuser@
|
|
+USER=ejabberd
|
|
+EJABBERDRUN=/run/ejabberd
|
|
|
|
test -x "$CTL" || {
|
|
- echo "ERROR: ejabberd not found: $DIR"
|
|
+ log_daemon_msg "ERROR: ejabberd not found: $DIR"
|
|
exit 1
|
|
}
|
|
-getent passwd "$USER" >/dev/null || {
|
|
- echo "ERROR: System user not found: $USER"
|
|
- exit 2
|
|
+
|
|
+mkrundir()
|
|
+{
|
|
+ if [ ! -d $EJABBERDRUN ]; then
|
|
+ mkdir -p $EJABBERDRUN
|
|
+ if [ $? -ne 0 ]; then
|
|
+ log_daemon_msg -n " failed"
|
|
+ return
|
|
+ fi
|
|
+ chmod 0755 $EJABBERDRUN
|
|
+ chown ejabberd:ejabberd $EJABBERDRUN
|
|
+ fi
|
|
}
|
|
|
|
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
|
|
@@ -34,21 +46,26 @@ export PATH="${PATH:+$PATH:}/usr/sbin:/s
|
|
case "$1" in
|
|
start)
|
|
test -x "$CTL" || exit 0
|
|
- echo "Starting ejabberd..."
|
|
- su - $USER -c "$CTL start"
|
|
- su - $USER -c "$CTL started"
|
|
- echo "done."
|
|
+ mkrundir
|
|
+ log_daemon_msg "Starting ejabberd..."
|
|
+ if ! /etc/init.d/ejabberd status > /dev/null; then
|
|
+ su - $USER -c "$CTL start"
|
|
+ su - $USER -c "$CTL started"
|
|
+ fi
|
|
+ log_daemon_msg "done."
|
|
;;
|
|
stop)
|
|
test -x "$CTL" || exit 0
|
|
- echo "Stopping ejabberd..."
|
|
- su - $USER -c "$CTL stop"
|
|
- su - $USER -c "$CTL stopped"
|
|
- echo "done."
|
|
+ log_daemon_msg "Stopping ejabberd..."
|
|
+ if $CTL status >/dev/null || test $? = 1 ; then
|
|
+ su - $USER -c "$CTL stop"
|
|
+ su - $USER -c "$CTL stopped"
|
|
+ fi
|
|
+ log_daemon_msg "done."
|
|
;;
|
|
status)
|
|
test -x "$CTL" || exit 0
|
|
- echo "Getting ejabberd status..."
|
|
+ log_daemon_msg "Getting ejabberd status..."
|
|
su - $USER -c "$CTL status"
|
|
;;
|
|
force-reload|restart)
|
|
@@ -57,7 +74,8 @@ case "$1" in
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart|force-reload|status}"
|
|
- exit 1
|
|
+ exit 3
|
|
+ ;;
|
|
esac
|
|
|
|
exit 0
|