#!/bin/sh # # Author: Simon Horman # # 2011-05-25 updated with current /etc/init.d/skeleon by Steven Kurylo # ### BEGIN INIT INFO # Provides: perdition # Required-Start: $remote_fs # Should-Start: $syslog $named # Required-Stop: $remote_fs # Should-Stop: $syslog $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: POP, IMAP and managesieve proxy # Description: Starts perdition to allow proxied POP, IMAP and managesieve access ### END INIT INFO PATH=/usr/sbin:/bin:/usr/bin:/sbin:/usr/sbin NAME=perdition DAEMON=@prefix@/sbin/perdition # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. . /lib/lsb/init-functions # Please do not edit the values below. # Rather, please edit /etc/default/perdition RUN_PERDITION="${RUN_PERDITION:=no}" FLAGS="${FLAGS:=}" POP3="${POP3:=yes}" POP3_FLAGS="${POP3_FLAGS:=}" POP3S="${POP3S:=yes}" POP3S_FLAGS="${POP3S_FLAGS:=}" IMAP4="${IMAP4:=yes}" IMAP4_FLAGS="${IMAP4_FLAGS:=}" IMAP4S="${IMAP4S:=yes}" IMAP4S_FLAGS="${IMAP4S_FLAGS:=}" MANAGESIEVE="${MANAGESIEVE:=yes}" MANAGESIEVE_FLAGS="${MANAGESIEVE_FLAGS:=}" if [ "$RUN_PERDITION" != "yes" ]; then exit 0 fi do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 } do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON #RETVAL="$?" #[ "$RETVAL" = 2 ] && return 2 #rm -f $PIDFILE #return "$RETVAL" return $? } do_reload() { start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --exec $DAEMON return 0 } case "$1" in start) if [ "$POP3" = "yes" ]; then PIDFILE=/var/run/perdition.pop3/perdition.pop3.pid DAEMON=@prefix@/sbin/perdition.pop3 DAEMON_ARGS="$FLAGS $POP3_FLAGS" [ "$VERBOSE" != no ] && log_daemon_msg "Starting Perdition POP3 server" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$POP3S" = "yes" ]; then PIDFILE=/var/run/perdition.pop3s/perdition.pop3s.pid DAEMON=@prefix@/sbin/perdition.pop3s DAEMON_ARGS="$FLAGS $POP3S_FLAGS" [ "$VERBOSE" != no ] && log_daemon_msg "Starting Perdition POP3S server" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$IMAP4" = "yes" ]; then PIDFILE=/var/run/perdition.imap4/perdition.imap4.pid DAEMON=@prefix@/sbin/perdition.imap4 DAEMON_ARGS="$FLAGS $IMAP4_FLAGS" [ "$VERBOSE" != no ] && log_daemon_msg "Starting Perdition IMAP4 server" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$IMAP4S" = "yes" ]; then PIDFILE=/var/run/perdition.imaps/perdition.imaps.pid DAEMON=@prefix@/sbin/perdition.imaps DAEMON_ARGS="$FLAGS $IMAP4S_FLAGS" [ "$VERBOSE" != no ] && log_daemon_msg "Starting Perdition IMAP4S server" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$MANAGESIEVE" = "yes" ]; then PIDFILE=/var/run/perdition.managesieve/perdition.managesieve.pid DAEMON=@prefix@/sbin/perdition.managesieve DAEMON_ARGS="$FLAGS $MANAGESIEVE_FLAGS" [ "$VERBOSE" != no ] && log_daemon_msg "Starting Perdition manage sieve server" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi ;; stop) if [ "$POP3" = "yes" ]; then PIDFILE=/var/run/perdition.pop3/perdition.pop3.pid DAEMON=@prefix@/sbin/perdition.pop3 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping Perdition POP3 server" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$POP3S" = "yes" ]; then PIDFILE=/var/run/perdition.pop3s/perdition.pop3s.pid DAEMON=@prefix@/sbin/perdition.pop3s [ "$VERBOSE" != no ] && log_daemon_msg "Stopping Perdition POP3S server" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$IMAP4" = "yes" ]; then PIDFILE=/var/run/perdition.imap4/perdition.imap4.pid DAEMON=@prefix@/sbin/perdition.imap4 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping Perdition IMAP4 server" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$IMAP4S" = "yes" ]; then PIDFILE=/var/run/perdition.imaps/perdition.imaps.pid DAEMON=@prefix@/sbin/perdition.imaps [ "$VERBOSE" != no ] && log_daemon_msg "Stopping Perdition IMAP4S server" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi if [ "$MANAGESIEVE" = "yes" ]; then PIDFILE=/var/run/perdition.managesieve/perdition.managesieve.pid DAEMON=@prefix@/sbin/perdition.managesieve [ "$VERBOSE" != no ] && log_daemon_msg "Stopping Perdition manage sieve server" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac fi ;; restart) $0 stop $0 start ;; force-reload|reload) if [ "$POP3" = "yes" ]; then PIDFILE=/var/run/perdition.pop3/perdition.pop3.pid DAEMON=@prefix@/sbin/perdition.pop3 [ "$VERBOSE" != no ] && log_daemon_msg "Reloading Perdition POP3 server" do_reload [ "$VERBOSE" != no ] && log_end_msg $? fi if [ "$POP3S" = "yes" ]; then PIDFILE=/var/run/perdition.pop3s/perdition.pop3s.pid DAEMON=@prefix@/sbin/perdition.pop3s [ "$VERBOSE" != no ] && log_daemon_msg "Reloading Perdition POP3S server" do_reload [ "$VERBOSE" != no ] && log_end_msg $? fi if [ "$IMAP4" = "yes" ]; then PIDFILE=/var/run/perdition.imap4/perdition.imap4.pid DAEMON=@prefix@/sbin/perdition.imap4 [ "$VERBOSE" != no ] && log_daemon_msg "Reloading Perdition IMAP4 server" do_reload [ "$VERBOSE" != no ] && log_end_msg $? fi if [ "$IMAP4S" = "yes" ]; then PIDFILE=/var/run/perdition.imaps/perdition.imaps.pid DAEMON=@prefix@/sbin/perdition.imaps [ "$VERBOSE" != no ] && log_daemon_msg "Reloading Perdition IMAP4S server" do_reload [ "$VERBOSE" != no ] && log_end_msg $? fi if [ "$MANAGESIEVE" = "yes" ]; then PIDFILE=/var/run/perdition.managesieve/perdition.managesieve.pid DAEMON=@prefix@/sbin/perdition.managesieve [ "$VERBOSE" != no ] && log_daemon_msg "Reloading Perdition manage sieve server" do_reload [ "$VERBOSE" != no ] && log_end_msg $? fi ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" exit 1 ;; esac exit 0