Description of problem: In /etc/rc.d/rc.sysinit there is the following piece of code: # Clean up /var. I'd use find, but /usr may not be mounted. for afile in /var/lock/* /var/run/* ; do if [ -d "$afile" ]; then case "$afile" in */news|*/mon) ;; */sudo) rm -f $afile/*/* ;; */vmware) rm -rf $afile/*/* ;; */samba) rm -rf $afile/*/* ;; */screen) rm -rf $afile/* ;; */cvs) rm -rf $afile/* ;; *) rm -f $afile/* ;; esac else rm -f $afile fi done The problem is that after recent changes to dovecot this atempts to do 'rm -f /var/run/dovecot/login' and loudly complaints because this is a directory. OTOH it leaves old /var/run/dovecot/login/ssl-parameters.dat Instead of trying to keep up with various possible changes there I think that the following code, which recursively walks through subdirectories, would be more robust: remove_files () { # use subshell so directory changes and variables # are invocation independent ( cd "$1" || exit; for x in * ; do [ -d "$x" ] && remove_files $x || rm -f $x done ) } remove_files /var/lock ; remove_files /var/run plus possibly some special cases when you want to remove some subdirectories as well. Version-Release number of selected component (if applicable): initscripts-8.25-1 How reproducible: on every startup
This was fixed in 8.26-1.