diff --git a/etc/crontab b/etc/crontab index 4f3568117111..56ef4758eb67 100644 --- a/etc/crontab +++ b/etc/crontab @@ -25,7 +25,3 @@ HOME=/var/log # does nothing, if you have UTC cmos clock. # See adjkerntz(8) for details. 1,31 0-5 * * * root adjkerntz -a -# -# Try and stop mail sitting around in the queue forever if there is no -# sendmail -q30m periodically trying to dequeue it. -41 6 * * * root /usr/sbin/sendmail -q diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index f72b1460b2ed..a5aee1bda45f 100644 --- a/etc/defaults/periodic.conf +++ b/etc/defaults/periodic.conf @@ -118,6 +118,9 @@ daily_status_security_nomfs="NO" # Don't check mfs mounts daily_status_mail_rejects_enable="YES" # Check mail rejects daily_status_mail_rejects_logs=3 # How many logs to check +# 500.queuerun +daily_queuerun_enable="YES" # Run mail queue + # 999.local daily_local="/etc/daily.local" # Local scripts diff --git a/etc/periodic/daily/500.queuerun b/etc/periodic/daily/500.queuerun new file mode 100755 index 000000000000..2a8b2a170d14 --- /dev/null +++ b/etc/periodic/daily/500.queuerun @@ -0,0 +1,34 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +case "$daily_queuerun_enable" in + [Yy][Ee][Ss]) + if [ ! -x /usr/sbin/sendmail ] + then + echo '$daily_queuerun_enable is set but /usr/sbin/sendmail' \ + "isn't executable" + rc=2 + elif [ ! -d /var/spool/mqueue ] + then + echo '$daily_queuerun_enable is set but /var/spool/mqueue' \ + "doesn't exist" + rc=2 + else + /usr/sbin/sendmail -q >/dev/null 2>&1 & + rc=0 + fi;; + + *) rc=0;; +esac + +exit $rc diff --git a/share/man/man5/periodic.conf.5 b/share/man/man5/periodic.conf.5 index 1aba0a647665..24e2b298d174 100644 --- a/share/man/man5/periodic.conf.5 +++ b/share/man/man5/periodic.conf.5 @@ -393,6 +393,10 @@ for the previous day. .It Ar daily_status_mail_rejects_logs (num) Set to the number of maillog files that should be checked for yesterday's mail rejects. +.It Ar daily_queuerun_enable +(bool) Set to +.Dq YES +if you want to manually run the mail queue at least once a day. .It Ar daily_local (str) Set to a list of extra scripts that should be run after all other daily scripts.