File: amavisd-new.amavis.init

package info (click to toggle)
amavisd-new 1%3A2.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 9,200 kB
  • sloc: perl: 33,232; sh: 527; sql: 158; makefile: 8
file content (146 lines) | stat: -rw-r--r-- 3,622 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#! /bin/sh
#
# amavisd	/etc/init.d/ initscript for amavisd-new
# 		$Id: amavisd-new.init 800 2006-01-31 00:07:45Z hmh $
#
#		Copyright (c) 2003 by Brian May <bam@debian.org>
#			and Henrique M. Holschuh <hmh@debian.org>
#		Distributed under the GPL version 2
#
#
# How this thing works:
#   ${START} must be only what is needed for start-stop-daemon, DO NOT
#   ADD ANY PARAMETERS HERE!  we might use it for --test, for example.
#   ${STOP} works just like ${START}, --signal is used with it.
#
#   ${PARAMS} are the parameters to give the daemon when really starting
#   it.
### BEGIN INIT INFO
# Provides:          amavisd-new
# Required-Start:    $syslog $network $local_fs $remote_fs 
# Required-Stop:     $syslog $network $local_fs $remote_fs
# Should-Start:      
# Should-Stop:       
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts amavisd-new mailfilter
# Description:       Launches the amavisd-new mailfilter
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/amavisd-new
DAEMON2=/usr/bin/perl
NAME=amavisd
DAEMONNAME=amavisd-new
DESC=amavisd
PIDFILE=/var/run/amavis/${NAME}.pid

. /lib/lsb/init-functions

test -f ${DAEMON} || exit 0

set -e

START="--start --quiet --pidfile $PIDFILE --startas ${DAEMON}"
STOP="--stop --quiet --pidfile $PIDFILE"
PARAMS=

check_noncompatible_upgrade() {
	for i in /etc/amavisd.conf /etc/amavis/amavisd.conf ; do
		if [ -e "${i}.disabled" ] ; then
			echo "Found incompatible config file flag!" >&2
			echo "Due to safety concerns, amavisd-new will not be started." >&2
			echo "Refer to /usr/share/doc/amavisd-new/README.Debian for instructions." >&2
			exit 1
		fi
	done
}

createdir() {
# $1 = user
# $2 = group
# $3 = permissions (octal)
# $4 = path to directory
        [ -d "$4" ] || mkdir -p "$4"
        chown -c -h "$1:$2" "$4"
        chmod -c "$3" "$4"
}

fixdirs() {
	dir=$(dpkg-statoverride --list /var/run/amavis) || {
		echo "You are missing a dpkg-statoverride on /var/run/amavis.  Fix it, otherwise you risk silent breakage on upgrades." >&2
		exit 1
	}
	[ -z "$dir" ] || createdir $dir
	:
}

cleanup() {
	[ -d /var/lib/amavis ] && 
	  find /var/lib/amavis -maxdepth 1 -name 'amavis-*' -type d \
	  	-exec rm -rf "{}" \; >/dev/null 2>&1 || true
	[ -d /var/lib/amavis/tmp ] && 
	  find /var/lib/amavis/tmp -maxdepth 1 -name 'amavis-*' -type d \
	  	-exec rm -rf "{}" \; >/dev/null 2>&1 || true
	:
}

case "$1" in
  start)
	echo -n "Starting $DESC: "
	fixdirs
  	check_noncompatible_upgrade
	if start-stop-daemon ${START} -- ${PARAMS} start >/dev/null ; then
		echo "amavisd-new."
	else
		if start-stop-daemon --test ${START} >/dev/null 2>&1; then
			echo "(failed)."
			exit 1
		else
			echo "(already running)."
			exit 0
		fi
	fi
	;;
  stop)
	echo -n "Stopping $DESC: "
	if start-stop-daemon ${STOP} --retry 10 >/dev/null ; then
		cleanup
		echo "amavisd-new."
	else
		if start-stop-daemon --test ${START} >/dev/null 2>&1; then
			echo "(not running)."
			exit 0
		else
			echo "(failed)."
			exit 1
		fi
	fi
	;;
#  reload)
#	echo "Reloading $DESC configuration files."
#	start-stop-daemon ${STOP} --signal 1
# 	;;
  restart|force-reload)
	$0 stop
	exec $0 start
	;;
  debug|debug-sa)
  	mode="$1"
  	echo "Trying to run amavisd-new in ${mode} mode..."
  	fixdirs
  	check_noncompatible_upgrade
	exec ${DAEMON} ${PARAMS} "${mode}"
	;;
  status)
	status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
	;;
  *)
	N=/etc/init.d/amavis
	#echo "Usage: $N {start|stop|restart|reload|force-reload|debug}" >&2
	echo "Usage: $N {start|stop|restart|force-reload|status|debug}" >&2
	exit 1
	;;
esac

exit 0