Problem in rc.sysinit?

Mick asurfer at iinet.net.au
Mon Apr 9 10:17:14 UTC 2007


Hello.

I work for a Web Hosting company that uses RedHat EL 4 on its (Dell) 
servers (and VentOS 4.4 on a small number of them) and all of these 
servers are connected to a Dell KVM over IP device.  One of the servers 
was rebooted today in order to install a new kernel and I was watching 
the reboot process via the KVM.  The first problem that arose was when 
the system was attempting to unmount the /home partition (it being ext3 
in an LVM2 partition).

The system tried to unmount /home 3 times in succession before giving up 
and proceeding with the rest of the shutdown sequence. Now, seeing as 
all of our hosted sites reside on the /home partition, I figured that 
perhaps a service like Apache, sendmail, MySQL, ipop3 or imapd would 
maybe have has one or more files left open on the /home partition 
somewhere.  However, none of those services returned an error when being 
shutdown.

Any ideas about this one?


The second problem that arose was when the system was booting.  What I 
saw on the console was a sequence of 5 errors which, from memory looked 
something like this:

rm: cannot remove `/var/run/run/dbus': Is a directory
rm: cannot remove `/var/run/run/mysqld_app_init': Is a directory
rm: cannot remove `/var/run/run/ppp': Is a directory
rm: cannot remove `/var/run/run/proftpd': Is a directory

and I can't recall what the 5th one was (maybe spamassassin) - nor was 
it logged in either /var/log/{dmesg,messages}.  Note the /var/run/run/.  
Also, there are another 10 folders under /var/run but no error messages 
are generated for those. 

I have also seen this same error when rebooting one of our servers that 
runs CentOS 4.4, and while the same Web Hosting control panel software 
runs on it,  it has no separate /home partition.

grepping around, I found that the likely candidate for the cause of this 
messages was in the default case in this code snippet in 
/etc/rc.d/rc.sysinit:

# 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/*/* ;;
                *)              rm -f $afile/* ;;
           esac
        else
           rm -f $afile
        fi
done
rm -f /var/lib/rpm/__db* &> /dev/null


Has anyone seen this behaviour before and if so, what is the fix?

Thanks.




More information about the redhat-list mailing list