Package: cyrus-imapd-2.4 Version: 2.4.9~beta1-1 Severity: normal Tags: patch
Per the documentation for 2.4, the locks should be cleaned out. I think cleaning out proc at the same time would be a good idea, in case a file is left after a crash. As well in the init script I: * Silenced try-restart * Improved SYNCSHUTDOWN check They should both be on tmpfs for better performance too. So I've changed the default config file to /run/cyrus/ Thank you for considering my patches. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.38-2-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages cyrus-imapd-2.4 depends on: ii cyrus-c 2.4.9~beta1-1 Cyrus mail system - common files ii libc6 2.13-5 Embedded GNU C Library: Shared lib ii libcome 1.41.12-4 common error description library ii libdb5. 5.1.25-10 Berkeley v5.1 Database Libraries [ ii libsasl 2.1.24~rc1.dfsg1+cvs2011-05-23-3 Cyrus SASL - authentication abstra ii libssl1 1.0.0d-2 SSL shared libraries ii libwrap 7.6.q-19 Wietse Venema's TCP wrappers libra ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime cyrus-imapd-2.4 recommends no packages. cyrus-imapd-2.4 suggests no packages. -- no debconf information
--- imapd.conf 2011-06-07 19:15:00.523999297 -0700 +++ imapd.conf-new 2011-06-07 19:20:46.251998286 -0700 @@ -4,6 +4,10 @@ # Configuration directory configdirectory: /var/lib/cyrus +# Directories for proc and lock files +proc_path: /run/cyrus/proc +mboxname_lockpath: /run/cyrus/lock + # Which partition to use for default mailboxes defaultpartition: default partition-default: /var/spool/cyrus/mail
--- cyrus-common.cyrus-imapd.init 2011-06-07 19:05:14.155998569 -0700 +++ cyrus-common.cyrus-imapd.init-new 2011-06-07 19:24:30.451999607 -0700 @@ -34,9 +34,6 @@ PIDFILE="/var/run/${NAME}.pid" DESC="Cyrus IMAPd" -SYNC_CLIENT=/usr/lib/cyrus/bin/sync_client -SYNCSHUTDOWN="$([ -r /etc/imapd.conf ] && (grep sync_shutdown_file /etc/imapd.conf|awk '{print $2}'))" - # Check if Cyrus is installed (vs. removed but not purged) test -x "$DAEMON" || exit 0 @@ -56,6 +53,20 @@ [ "x${MASTERCONF}" != "x" ] && OPTIONS="-M ${MASTERCONF} ${OPTIONS}" [ "x${LISTENQUEUE}" != "x" ] && OPTIONS="-l ${LISTENQUEUE} ${OPTIONS}" +if [ -n "$CONF" ]; then + [ -r "$CONF" ] || ( echo Could not read config file $CONF; exit 1) +else + CONF=/etc/imapd.conf +fi + +SYNC_CLIENT=/usr/lib/cyrus/bin/sync_client +SYNCSHUTDOWN="$(gawk '/^sync_shutdown_file:[[:blank:]]/ { print $2 }' $CONF)" +CONFIGDIR="$(gawk '/^configdirectory:[[:blank:]]/ {print $2}' $CONF)" +LOCK_DIR="$(gawk '/^mboxname_lockpath:[[:blank:]]/ {print $2}' $CONF)" +PROC_DIR="$(gawk '/^proc_path:[[:blank:]]/ {print $2}' $CONF)" +[ -z "$LOCK_DIR" ] && LOCK_DIR="$CONFIGDIR/lock" +[ -z "$PROC_DIR" ] && PROC_DIR="$CONFIGDIR/proc" + # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh @@ -132,6 +143,11 @@ # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started + + # Clean stale entries + find "$LOCK_DIR" -mindepth 1 -depth -size 0 # -delete + find "$PROC_DIR" -mindepth 1 -depth -name '[0-9]*' # -delete + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ @@ -262,7 +278,7 @@ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; try-restart) - pidofproc "$DAEMON" && exec $0 restart + pidofproc "$DAEMON" >/dev/null && exec $0 restart ;; *) echo "Usage: $0 {start|stop|status|restart|reload|force-reload|try-restart}" 1>&2