Problem in rc.sysinit?

Mick asurfer at iinet.net.au
Mon Apr 9 11:13:46 UTC 2007


Mick wrote:
> 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.
>
Actually, I should just change the default case from:

*) rm -f $afile/* ;;

to

*) rm -rf $afile/* ;;

Yeah?




More information about the redhat-list mailing list