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