Some third-party applications create sub-sub-directories in /var/run for tracking state. For example, VMware makes /var/run/vmware/$user for every user that runs it, then stores state for each user in those directories. This causes errors when the system boots up and rc.sysinit is processed. I get rm: cannot remove '/var/run/vmware/cricker': Is a directory when the block: for afile in /var/lock/* /var/run/* ; do if [ -d "$afile" ]; then case "`basename $afile`" in news|mon) ;; sudo) rm -f $afile/*/* ;; *) rm -f $afile/* ;; esac else rm -f $afile fi done in rc.sysinit runs It looks to me like the *) rm -f $afile/* ;; stuff needs to make sure that it's a file, not a dir, that's being removed (or else misguided third-party vendors need fixing, but that's a whole 'nother matter ;-)
Subdirectories in /var/run are encouraged for programs that use more than runtime file, at least according to the FHS: http://www.pathname.com/fhs/2.2/fhs-5.13.html BTW, this bug is still present in RHEL4U1.
*** This bug has been marked as a duplicate of 113104 ***