
This is necessary for list_lists to use it in a subshell. Change-Id: Icea86b11eabd4cb336989836065a4cec7570e9db
117 lines
3.2 KiB
Plaintext
117 lines
3.2 KiB
Plaintext
#! /bin/sh
|
|
#
|
|
# mailman-<%= @name %> starts up the master queue runner for mailman
|
|
#
|
|
# Based on skeleton originally by Miquel van Smoorenburg and Ian Murdock,
|
|
# customisations by Tollef Fog Heen and Thijs Kinkhorst for Debian.
|
|
#
|
|
### BEGIN INIT INFO
|
|
# Provides: mailman-qrunner-<%= @name %>
|
|
# Required-Start: $syslog $local_fs $remote_fs $named $network
|
|
# Required-Stop: $syslog $local_fs $remote_fs $named $network
|
|
# Should-Start:
|
|
# Should-Stop:
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop:
|
|
# Short-Description: Mailman Master Queue Runner
|
|
# Description: Starts and stops the Mailman queue runners, used to
|
|
# manage the various message queues within the Mailman
|
|
# mailing list manager.
|
|
### END INIT INFO
|
|
|
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
DAEMON=/usr/lib/mailman/bin/mailmanctl
|
|
export MAILMAN_SITE_DIR=/srv/mailman/<%= @name %>
|
|
PIDFILE=$MAILMAN_SITE_DIR/run/mailman.pid
|
|
|
|
|
|
test -x $DAEMON || exit 0
|
|
|
|
set -e
|
|
|
|
if ! [ -d /var/run/mailman ]; then
|
|
install -d -o list -g list /var/run/mailman
|
|
fi
|
|
|
|
if ! [ -d /var/lock/mailman ]; then
|
|
install -d -o root -g list -m 2775 /var/lock/mailman
|
|
fi
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
# In rare upgrading cycles python might not be available at some point.
|
|
# Do not break the upgrade in that case.
|
|
if ! [ -x /usr/bin/python ]; then
|
|
log_warning_msg "Python interpreter not available, exiting."
|
|
exit 0;
|
|
fi
|
|
|
|
# Just a newline.
|
|
nl='
|
|
'
|
|
|
|
case "$1" in
|
|
start)
|
|
SITE_LIST=$( sed -rne "s/^[[:space:]]*MAILMAN_SITE_LIST[[:space:]]*=[[:space:]]*(['\"])([^'\"]+)\\1/\\2/p" /etc/mailman/mm_cfg.py )
|
|
[ -n "$SITE_LIST" ] || SITE_LIST='mailman'
|
|
case "$nl$(/var/lib/mailman/bin/list_lists -b)$nl" in
|
|
(*$nl$SITE_LIST$nl*) ;;
|
|
(*)
|
|
log_warning_msg "Site list for mailman missing (looking for list named '${SITE_LIST}')."
|
|
log_warning_msg "Please create it; until then, mailman will refuse to start."
|
|
exit 0 ;;
|
|
esac
|
|
log_daemon_msg "Starting Mailman master qrunner" "mailmanctl"
|
|
if $DAEMON -s -q start; then
|
|
log_end_msg 0
|
|
else
|
|
log_end_msg 1
|
|
fi
|
|
;;
|
|
stop)
|
|
log_daemon_msg "Stopping Mailman master qrunner" "mailmanctl"
|
|
if $DAEMON -q stop; then
|
|
rm -f $PIDFILE
|
|
log_end_msg 0
|
|
else
|
|
log_end_msg 1
|
|
fi
|
|
;;
|
|
reload)
|
|
log_begin_msg "Reloading Mailman master qrunner configuration"
|
|
if $DAEMON -q restart; then
|
|
log_end_msg 0
|
|
else
|
|
log_end_msg 1
|
|
fi
|
|
;;
|
|
restart|force-reload)
|
|
PID=`cat $PIDFILE 2>/dev/null` || true
|
|
log_daemon_msg "Restarting Mailman master qrunner" "mailmanctl"
|
|
$DAEMON -q stop
|
|
if test -n "$PID" && kill -0 $PID 2>/dev/null ; then
|
|
log_action_begin_msg "Waiting"
|
|
for cnt in `seq 1 5`; do
|
|
sleep 1
|
|
kill -0 $PID 2>/dev/null || break
|
|
done;
|
|
if kill -0 $PID 2>/dev/null ; then
|
|
log_action_end_msg 1
|
|
else
|
|
log_action_end_msg 0
|
|
fi
|
|
fi
|
|
if $DAEMON -q start; then
|
|
log_end_msg 0
|
|
else
|
|
log_end_msg 1
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Usage: /etc/init.d/mailman {start|stop|restart|reload|force-reload}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|