mcst-linux-kernel/patches-2024.06.26/ejabberd-20.01/0002-ejabberd.init.template...

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