chkservd
chkservd is the daemon that checks the status of Apache (along with Exim, Bind, Interchange, etc). It works pretty nicely save for an issue with reporting. When it finds a service down, it flags the service as down and attempts to restart it.
So lets say that Apache dies for some reason. It will report as being up until chkservd gets around to its routine check (every 8 or 9 minutes) and next reports. At that time, chkservd reports that Apache is down and attempts a restart. Assuming this restart is successful, Apache will then have a red light when viewed in CP/WHM because it was last found to be down. Until 8 or 9 minutes later when it should be reported up... and stay that way.
As to why yours is constantly reporting as down, that's a little harder. Check your logs. Take a look in /var/log/chkservd.log and you may see the daemon attempting to restart Apache. Is it? Is it possible that the daemon is restarting Apache unnecessarily? chkservd attempts to connect to port 80 on localhost to see if Apache is up. Any chance that fails? This may take some poking around to figure out... unless someone's seen it before of course, in which case there's probably a quick fix.
- Jason