]> git.donarmstrong.com Git - deb_pkgs/spamass-milter.git/blob - debian/spamass-milter.init
6c519a9b6f98e3a07b1e95458d19dce73767d362
[deb_pkgs/spamass-milter.git] / debian / spamass-milter.init
1 #!/bin/sh
2 #
3 # $Id$
4 #
5 # Sample init script for Debian GNU/Linux
6 #
7 #  Copyright (c) 2002 Georg C. F. Greve <greve@gnu.org>,
8 #   all rights maintained by FSF Europe e.V., 
9 #   Villa Vogelsang, Antonienallee 1, 45279 Essen, Germany
10 #
11 #   This program is free software; you can redistribute it and/or modify
12 #   it under the terms of the GNU General Public License as published by
13 #   the Free Software Foundation; either version 2 of the License, or
14 #   (at your option) any later version.
15 #  
16 #   This program is distributed in the hope that it will be useful,
17 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
18 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 #   GNU General Public License for more details.
20 #  
21 #   You should have received a copy of the GNU General Public License
22 #   along with this program; if not, write to the Free Software
23 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
24 #
25 #   Contact:
26 #            Michael Brown <michaelb@opentext.com>
27
28 # This init script was modified on Thu, 30 Jan 2003 02:06:04 -0500 by
29 # Don Armstrong <don@donarmstrong.com> from contrib/spamass-milter to
30 # allow force-reload and options specified in
31 # /etc/default/spamass-milter necessary for inclusion in debian.
32
33
34 PATH=/sbin:/bin:/usr/sbin:/usr/bin
35 NAME=spamass-milter
36 DAEMON=/usr/sbin/spamass-milter
37 SOCKET=/var/run/spamass/spamass.sock
38 PIDFILE=/var/run/spamass/spamass.pid
39 DESC="Sendmail milter plugin for SpamAssassin"
40
41 DEFAULT=/etc/default/spamass-milter
42 OPTIONS=""
43 RUNAS="nobody"
44 CHUID=""
45 SOCKETMODE="0640"
46 SOCKETOWNER="root:root"
47
48 test -x $DAEMON || exit 0
49
50 if [ -e /etc/mail/sendmail.cf ] && egrep -q 'X.+S=local:/var/run/sendmail/spamass\.sock' /etc/mail/sendmail.cf; then
51     SOCKET=/var/run/sendmail/spamass.sock
52     SOCKETMODE=""
53     SOCKETOWNER=""
54     RUNAS=""
55     echo "WARNING: You are using the old location of spamass.sock. Change your input filter to use";
56     echo "/var/run/spamass/spamass.sock so spamass-milter can run as nobody";
57 fi;
58
59 # If /usr/sbin/postfix exists, set up the defaults for a postfix install
60 # These can be overridden in /etc/default/spamass-milter
61 if [ -x /usr/sbin/postfix ]; then
62     SOCKET="/var/spool/postfix/spamass/spamass.sock"
63     SOCKETOWNER="postfix:postfix"
64     SOCKETMODE="0660"
65 fi;
66
67 if [ -r $DEFAULT ]; then
68     . $DEFAULT;
69 fi;
70
71 if [ -n "$RUNAS" ]; then
72     CHUID="--chuid $RUNAS";
73 fi;
74
75 set -e
76
77 start() {
78     if [ ! -d $(dirname $SOCKET) ]; then
79         mkdir -p $(dirname $SOCKET);
80         if [ -n "$SOCKETOWNER" ]; then
81             chown "$SOCKETOWNER" $(dirname $SOCKET);
82         fi;
83     fi;
84     if [ ! -d $(dirname $PIDFILE) ]; then
85         mkdir -p $(dirname $PIDFILE);
86         if [ -d $(dirname $PIDFILE) ] && [ -n "$RUNAS" ]; then
87             chown "$RUNAS" $(dirname $PIDFILE);
88         fi;
89     fi;
90     if [ -n "$RUNAS" ] && [ -d $(dirname $PIDFILE) ] && [ "$(stat -c '%U' $(dirname $PIDFILE))" != "$RUNAS" ]; then
91         echo "WARNING: $NAME will run as user $RUNAS but $(dirname $PIDFILE) is not owned by $RUNAS";
92         echo "Either delete this directory or chown it appropriately. Startup attempts may fail.";
93     fi;
94     /bin/rm -f $SOCKET
95     start-stop-daemon --start -p $PIDFILE $CHUID --exec $DAEMON -- -P $PIDFILE -f -p $SOCKET $OPTIONS
96     sleep 1s
97     if [ -n "$SOCKETMODE" ]; then
98         chmod $SOCKETMODE $SOCKET;
99     fi;
100     if [ -n "$SOCKETOWNER" ]; then
101         chown $SOCKETOWNER $SOCKET;
102     fi;
103 }
104
105 stop(){
106     start-stop-daemon --stop -p $PIDFILE --signal 3 --exec $DAEMON
107     /bin/sleep 5s
108     /bin/rm -f $SOCKET
109 }
110
111 case "$1" in
112   start)
113         echo -n "Starting $DESC: "
114         start
115         echo "${NAME}"
116         ;;
117   stop)
118         echo -n "Stopping $DESC: "
119         stop
120         echo "${NAME}"
121         ;;
122   force-reload | restart)
123         echo -n "Restarting $DESC: "
124
125         stop
126         start
127         echo "${NAME}"
128
129         ;;
130   *)
131         N=$0
132         echo "Usage: $N {start|stop|restart}" >&2
133         exit 1
134         ;;
135 esac
136
137 exit 0