* Andreas Metzler [Sun, Apr 20, 2008 at 05:32:48PM +0200]: > Hello, > Please provide the complete debugging output, and the contents of > /etc/init.d/exim4 and /etc/default/exim4
Here goes.
#! /bin/sh # /etc/init.d/exim4 # # Written by Miquel van Smoorenburg <[EMAIL PROTECTED]>. # Modified for Debian GNU/Linux by Ian Murdock <[EMAIL PROTECTED]>. # Modified for exim by Tim Cutts <[EMAIL PROTECTED]> # Modified for exim4 by Andreas Metzler <[EMAIL PROTECTED]> # and Marc Haber <[EMAIL PROTECTED]> ### BEGIN INIT INFO # Provides: exim4 # Required-Start: $remote_fs $syslog $named $network $time # Required-Stop: $remote_fs $syslog $named $network # Should-Start: postgresql mysql clamav-daemon greylist spamassassin # Should-Stop: postgresql mysql clamav-daemon greylist spamassassin # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: exim Mail Transport Agent # Description: exim is a Mail Transport agent ### END INIT INFO set -e if ! [ -x "/lib/lsb/init-functions" ]; then . /lib/lsb/init-functions else echo "E: /lib/lsb/init-functions not found, lsb-base (>= 3.0-6) needed" exit 1 fi if [ -n "$EX4DEBUG" ]; then echo "now debugging $0 $@" set -x fi LANG=C export LANG #read default file QUEUERUNNER='combined' QUEUEINTERVAL='30m' UPEX4OPTS='' PIDFILE="/var/run/exim4/exim.pid" QRPIDFILE="/var/run/exim4/eximqr.pid" [ -f /etc/default/exim4 ] && . /etc/default/exim4 upex4conf() { UPEX4CONF="update-exim4.conf" OLDIFS="$IFS" IFS=: for p in $PATH; do if [ -x "$p/$UPEX4CONF" ]; then IFS="$OLDIFS" $p/$UPEX4CONF $UPEX4OPTS return 0 fi done IFS="$OLDIFS" } # Exit if exim runs from /etc/inetd.conf if [ -f /etc/inetd.conf ] && grep -E -q '^[[:space:]]*((\*|[[:alnum:].-]+):)?smtp' /etc/inetd.conf then upex4conf exit 0 fi DAEMON="/usr/sbin/exim4" NAME="exim4" ##test -x $DAEMON || exit 0 test -x /usr/lib/exim4/exim4 || exit 0 # this is from madduck on IRC, 2006-07-06 # There should be a better possibility to give daemon error messages # and/or to log things log() { case "$1" in [[:digit:]]*) success=$1; shift;; *) :;; esac log_action_begin_msg "$1"; shift log_action_end_msg ${success:-0} "$*" } start_exim() { [ -e /var/run/exim4 ] || \ install -d -oDebian-exim -gDebian-exim -m750 /var/run/exim4 case ${QUEUERUNNER} in combined) start_daemon -p "$PIDFILE" \ "$DAEMON" -bd "-q${QFLAGS}${QUEUEINTERVAL}" \ "${COMMONOPTIONS}" "${QUEUERUNNEROPTIONS}" "${SMTPLISTENEROPTIONS}" log_progress_msg "exim4" ;; separate) start_daemon -p "$PIDFILE" \ "$DAEMON" -bd "${SMTPLISTENEROPTIONS}" "${COMMONOPTIONS}" log_progress_msg "exim4_listener" start_daemon -p "$QRPIDFILE" \ "$DAEMON" -oP "$QRPIDFILE" \ "-q${QFLAGS}${QUEUEINTERVAL}" "${QUEUERUNNEROPTIONS}" "${COMMONOPTIONS}" log_progress_msg "exim4_queuerunner" ;; queueonly) start_daemon -p "$QRPIDFILE" \ "$DAEMON" -oP "$QRPIDFILE" \ "-q${QFLAGS}${QUEUEINTERVAL}" "${QUEUERUNNEROPTIONS}" "${COMMONOPTIONS}" log_progress_msg "exim4_queuerunner" ;; no|ppp) start_daemon -p "$PIDFILE" \ "$DAEMON" -bd "${SMTPLISTENEROPTIONS}" log_progress_msg "exim4_listener" ;; nodaemon) ;; esac } stop_exim() { # we try to kill eximqr and exim SMTP listener, no matter what # ${QUEUERUNNER} is set to, we could have switched since starting. if [ -f "$QRPIDFILE" ]; then killproc -p "$QRPIDFILE" "$DAEMON" log_progress_msg "exim4_queuerunner" fi if [ -f "$PIDFILE" ]; then killproc -p "$PIDFILE" "$DAEMON" log_progress_msg "exim4_listener" fi } reload_exim() { case ${QUEUERUNNER} in combined|no|ppp) killproc -p "$PIDFILE" "$DAEMON" -HUP log_progress_msg "exim4" ;; separate) killproc -p "$PIDFILE" "$DAEMON" -HUP log_progress_msg "exim4_listener" killproc -p "$QRPIDFILE" "$DAEMON" -HUP log_progress_msg "exim4_queuerunner" ;; esac } kill_all_exims() { SIG="${1:-TERM}" for pid in $(pidof $NAME); do if [ "$(readlink /proc/$pid/root)" = "/" ]; then kill -$SIG $pid fi done } status() { # the exit value of this function reflects the status of the SMTP # service. Output shows the status of the queue runner as well. SMTPNAME="SMTP listener daemon" QRNAME="separate queue runner daemon" if [ "${QUEUERUNNER}" = "combined" ]; then SMTPNAME="combined SMTP listener and queue runner daemon" fi log_action_begin_msg "checking $QRNAME" if pidofproc -p "$QRPIDFILE" >/dev/null; then log_action_end_msg 0 "running" else if [ -e "$QRPIDFILE" ]; then log_action_end_msg 1 "$QRNAME failed" else log_action_end_msg 0 "not running" fi fi log_action_begin_msg "checking $SMTPNAME" if pidofproc -p "$PIDFILE" >/dev/null; then log_action_end_msg 0 "running" exit 0 else if [ -e "$PIDFILE" ]; then log_action_end_msg 1 "$SMTPNAME failed" exit 1 else log_action_end_msg 0 "not running" exit 3 fi fi } # check for valid configuration file isconfigvalid() { if ! $DAEMON -bV > /dev/null ; then log 1 "Warning! Invalid configuration file for $NAME. Exiting." exit 1 fi } # check for non-empty paniclog warn_paniclog() { if [ -s "/var/log/exim4/paniclog" ]; then if [ -z "$E4BCD_PANICLOG_NOISE" ] || grep -vq "$E4BCD_PANICLOG_NOISE" /var/log/exim4/paniclog; then log_failure_msg "ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken" fi fi } case "$1" in start) log_daemon_msg "Starting MTA" # regenerate exim4.conf upex4conf isconfigvalid start_exim log_end_msg 0 warn_paniclog ;; stop) log_daemon_msg "Stopping MTA" stop_exim log_end_msg 0 warn_paniclog ;; restart) log_daemon_msg "Stopping MTA for restart" # regenerate exim4.conf upex4conf isconfigvalid stop_exim log_end_msg 0 sleep 2 log_daemon_msg "Restarting MTA" start_exim log_end_msg 0 warn_paniclog ;; reload|force-reload) log_daemon_msg "Reloading $NAME configuration files" # regenerate exim4.conf upex4conf isconfigvalid reload_exim log_end_msg 0 warn_paniclog ;; status) status ;; what) exiwhat ;; force-stop) kill_all_exims $2 ;; *) echo "Usage: $0 {start|stop|restart|reload|status|what|force-stop}" exit 1 ;; esac exit 0 # vim:tabstop=2:expandtab:shiftwidth=2
# /etc/default/exim4 EX4DEF_VERSION='' # 'combined' - one daemon running queue and listening on SMTP port # 'no' - no daemon running the queue # 'separate' - two separate daemons # 'ppp' - only run queue with /etc/ppp/ip-up.d/exim4. # 'nodaemon' - no daemon is started at all. # 'queueonly' - only a queue running daemon is started, no SMTP listener. # setting this to 'no' will also disable queueruns from /etc/ppp/ip-up.d/exim4 QUEUERUNNER='combined' # how often should we run the queue QUEUEINTERVAL='30m' # options common to quez-runner and listening daemon COMMONOPTIONS='' # more options for the daemon/process running the queue (applies to the one # started in /etc/ppp/ip-up.d/exim4, too. QUEUERUNNEROPTIONS='' # special flags given to exim directly after the -q. See exim(8) QFLAGS='' # options for daemon listening on port 25 SMTPLISTENEROPTIONS=''
now debugging /etc/init.d/exim4 restart + LANG=C + export LANG + QUEUERUNNER=combined + QUEUEINTERVAL=30m + UPEX4OPTS= + PIDFILE=/var/run/exim4/exim.pid + QRPIDFILE=/var/run/exim4/eximqr.pid + '[' -f /etc/default/exim4 ']' + . /etc/default/exim4 ++ EX4DEF_VERSION= ++ QUEUERUNNER=combined ++ QUEUEINTERVAL=30m ++ COMMONOPTIONS= ++ QUEUERUNNEROPTIONS= ++ QFLAGS= ++ SMTPLISTENEROPTIONS= + '[' -f /etc/inetd.conf ']' + grep -E -q '^[[:space:]]*((\*|[[:alnum:].-]+):)?smtp' /etc/inetd.conf + DAEMON=/usr/sbin/exim4 + NAME=exim4 + test -x /usr/lib/exim4/exim4 + case "$1" in + log_daemon_msg 'Stopping MTA for restart' + '[' -z 'Stopping MTA for restart' ']' + '[' -z '' ']' + echo -n 'Stopping MTA for restart:' Stopping MTA for restart:+ return + upex4conf + UPEX4CONF=update-exim4.conf + OLDIFS=' ' + IFS=: + for p in '$PATH' + '[' -x /usr/local/sbin/update-exim4.conf ']' + for p in '$PATH' + '[' -x /usr/local/bin/update-exim4.conf ']' + for p in '$PATH' + '[' -x /usr/sbin/update-exim4.conf ']' + IFS=' ' + /usr/sbin/update-exim4.conf + return 0 + isconfigvalid + /usr/sbin/exim4 -bV + stop_exim + '[' -f /var/run/exim4/eximqr.pid ']' + '[' -f /var/run/exim4/exim.pid ']' + log_end_msg 0 + '[' -z 0 ']' + log_use_fancy_output + TPUT=/usr/bin/tput + EXPR=/usr/bin/expr + '[' -t 1 ']' + FANCYTTY=0 + case "$FANCYTTY" in + false + '[' 0 -eq 0 ']' + echo . . + return 0 + sleep 2 + log_daemon_msg 'Restarting MTA' + '[' -z 'Restarting MTA' ']' + '[' -z '' ']' + echo -n 'Restarting MTA:' Restarting MTA:+ return + start_exim + '[' -e /var/run/exim4 ']' + case ${QUEUERUNNER} in + start_daemon -p /var/run/exim4/exim.pid /usr/sbin/exim4 -bd -q30m '' '' '' + local force nice pidfile exec i + force=0 + nice=0 + pidfile=/dev/null + OPTIND=1 + getopts fn:p: opt + case "$opt" in + pidfile=/var/run/exim4/exim.pid + getopts fn:p: opt + shift 2 + '[' /usr/sbin/exim4 = -- ']' + exec=/usr/sbin/exim4 + shift + '[' 0 = 1 ']' + '[' /var/run/exim4/exim.pid ']' + /sbin/start-stop-daemon --start --nicelevel 0 --quiet --exec /usr/sbin/exim4 --oknodo --pidfile /var/run/exim4/exim.pid -- -bd -q30m '' '' '' exim: incompatible command-line options or arguments