aboutsummaryrefslogtreecommitdiff
path: root/security/amavisd-new/files/amavisd-milter.sh
diff options
context:
space:
mode:
Diffstat (limited to 'security/amavisd-new/files/amavisd-milter.sh')
-rw-r--r--security/amavisd-new/files/amavisd-milter.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/security/amavisd-new/files/amavisd-milter.sh b/security/amavisd-new/files/amavisd-milter.sh
new file mode 100644
index 000000000000..eaefe61b9988
--- /dev/null
+++ b/security/amavisd-new/files/amavisd-milter.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
+ echo "$0: Cannot determine the PREFIX" >&2
+ exit 1
+fi
+
+case "$1" in
+start)
+ ( [ -x ${PREFIX}/sbin/amavisd ] || [ -x ${PREFIX}/sbin/amavis-milter ] ) || exit 1
+ AMAVISD=$(/bin/ps -xU %%AMAVISUSER%% | grep amavisd | awk '{ print $1 }')
+ AMAVIS_MILTER=$(/bin/ps -xU %%AMAVISUSER%% | grep amavis-milter | awk '{ print $1 }')
+ ( /bin/test "$AMAVISD" || /bin/test "$AMAVIS_MILTER" ) && \
+ su - %%AMAVISUSER%% -c "/bin/kill $AMAVISD $AMAVIS_MILTER" > /dev/null
+ rm -rf /var/amavis/amavis*.sock
+ su - %%AMAVISUSER%% -c "${PREFIX}/sbin/amavis-milter -D -p /var/amavis/amavis-milter.sock" > /dev/null
+ su - %%AMAVISUSER%% -c ${PREFIX}/sbin/amavisd > /dev/null 2>&1 && echo -n ' amavisd-milter'
+ ;;
+stop)
+ ( [ -x ${PREFIX}/sbin/amavisd ] || [ -x ${PREFIX}/sbin/amavis-milter ] ) || exit 1
+ AMAVISD=$(/bin/ps -xU %%AMAVISUSER%% | grep amavisd | awk '{ print $1 }')
+ AMAVIS_MILTER=$(/bin/ps -xU %%AMAVISUSER%% | grep amavis-milter | awk '{ print $1 }')
+ ( /bin/test "$AMAVISD" || /bin/test "$AMAVIS_MILTER" ) && \
+ su - %%AMAVISUSER%% -c "/bin/kill $AMAVISD $AMAVIS_MILTER" > /dev/null && echo -n ' amavisd-milter'
+ ;;
+*)
+ echo "Usage: `basename $0` {start|stop}" >&2
+ ;;
+esac
+
+exit 0