Hello,

Last year Timo (the dovecot author) remoted into our server and migrated us from courier-imap to dovecot. One of the things we ran into afterwards was this warning in the logs:

Warning: Inotify instance limit for user 200 (UID vmail) exceeded, disabling. 
Increase /proc/sys/fs/inotify/max_user_instances

He solved it by doing:

echo 1024 > /proc/sys/fs/inotify/max_user_instances

Then he said he was going to solve this permanently by changing the init script...

Well, my shiny new server encountered the same issue once it went under load this morning, so I had to dig out this solution - but obviously this will come back again the next time I reboot, so I want to find a permanent solution.

I guess I could manually modify my init script, but I'm clueless as to where or how.

If someone can help me figure out how to do this, I'll go open a bug to get this added to the gentoo init script permanently.

The current (gentoo) init script is:

#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or
later
# $Header:
/var/cvsroot/gentoo-x86/net-mail/dovecot/files/dovecot.init-r4,v 1.1
2012/12/01 10:40:49 eras Exp $

extra_started_commands="reload"

depend() {
        need localmount
        before postfix
        after bootmisc ldap mysql ntp-client ntpd postgresql saslauthd
slapd
        use logger net
}

checkconfig() {
        DOVECOT_INSTANCE=${SVCNAME##*.}
        if [ -n "${DOVECOT_INSTANCE}" -a "${SVCNAME}" != "dovecot" ]; then
DOVECOT_CONF=/etc/dovecot/dovecot.${DOVECOT_INSTANCE}.conf
        else
                DOVECOT_CONF=/etc/dovecot/dovecot.conf
        fi
        if [ ! -e ${DOVECOT_CONF} ]; then
                eerror "You will need an ${DOVECOT_CONF} first"
                return 1
        fi
        if [ -x /usr/sbin/dovecot ]; then
                DOVECOT_BASEDIR=$(/usr/sbin/dovecot -c ${DOVECOT_CONF}
-a | grep '^base_dir = ' | sed 's/^base_dir = //')
        else
                eerror "dovecot not executable"
                return 1
        fi
        DOVECOT_BASEDIR=${DOVECOT_BASEDIR:-/var/run/dovecot}
        DOVECOT_PIDFILE=${DOVECOT_BASEDIR}/master.pid
}

start() {
        checkconfig || return 1
        ebegin "Starting ${SVCNAME}"
        start-stop-daemon --start --exec /usr/sbin/dovecot \
                --pidfile "${DOVECOT_PIDFILE}" -- -c "${DOVECOT_CONF}"
        eend $?
}

stop() {
        checkconfig || return 1
        ebegin "Stopping ${SVCNAME}"
        start-stop-daemon --stop --exec /usr/sbin/dovecot \
                --pidfile "${DOVECOT_PIDFILE}"
        eend $?
}

reload() {
        checkconfig || return 1
        ebegin "Reloading ${SVCNAME} configs and restarting auth/login
processes"
        start-stop-daemon --signal HUP --exec /usr/sbin/dovecot \
                --pidfile "${DOVECOT_PIDFILE}"
        eend $?
}

Thx for any help...

Charles


Reply via email to