#!/bin/sh # # mailman This shell script starts and stops GNU Mailman. # # Copyright (C) 2001-2003 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # Copy this file to /etc/init.d/ (or /etc/rc.d/init.d/ depending on # your system) and activate it as such: # # On Debian, type "update-rc.d mailman defaults" # On RedHat, and derivatives, install with "chkconfig --add mailman" # # chkconfig: - 98 12 # description: Mailman is the GNU Mailing List Manager, a program that \ # manages electronic mail discussion groups. For more \ # on GNU Mailman see http://www.list.org # processname: mailmanctl # config: /usr/lib/mailman/Mailman/mm_cfg.py # pidfile: /var/run/mailman/master-qrunner.pid MAILMANHOME=/usr/lib/mailman MAILMANCTL=$MAILMANHOME/bin/mailmanctl # We used to install the mailman cron jobs when the mailman rpm was # installed, irrespective of whether mailman was actually being # run. Although the cron jobs didn't create any problems if someone # wasn't running mailman some users complained about the cron log file # filling up, resource usage, and power consumption since systems # wouldn't really idle. It really only makes sense to run the mailman # cron jobs if the mailman service is turned on and not just merely # having the rpm installed. This init.d script is an obvious place to # install or remove the cron jobs based on the service being enabled # or not. SRC_CRON_SCRIPT=$MAILMANHOME/cron/crontab.in DST_CRON_SCRIPT=/etc/cron.d/mailman function InstallCron() { install -m644 -o root -g root $SRC_CRON_SCRIPT $DST_CRON_SCRIPT } function RemoveCron() { cat > $DST_CRON_SCRIPT <<EOF # DO NOT EDIT THIS FILE! # # Contents of this file managed by /etc/init.d/mailman # Master copy is /usr/lib/mailman/cron/crontab.in # Consult that file for documentation EOF } # Source function library. . /etc/rc.d/init.d/functions RETVAL=0 prog="mailman" function start() { echo -n $"Starting $prog: " daemon $MAILMANCTL -s -q start RETVAL=$? if [ $RETVAL -eq 0 ] then touch /var/lock/subsys/$prog InstallCron fi echo return $RETVAL } function stop() { echo -n $"Shutting down $prog: " daemon $MAILMANCTL -q stop RETVAL=$? if [ $RETVAL -eq 0 ] then rm -f /var/lock/subsys/$prog RemoveCron fi echo return $RETVAL } function restart() { stop start RETVAL=$? return $RETVAL } case "$1" in 'start') start RETVAL=$? ;; 'stop') stop RETVAL=$? ;; 'restart') restart RETVAL=$? ;; 'condrestart') $MAILMANCTL -q -u status retval=$? if [ $retval -eq 0 ] then restart RETVAL=$? fi ;; 'status') $MAILMANCTL -u status RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|condrestart}" RETVAL=3 ;; esac exit $RETVAL