Just a quick writeup as I did not find useful replies related to this issue. In RHEL5 (and CentOS) there have been various reports about tools having issues with utmp. We ran into this issue on multiple occasions on our production systems.
Why it is a problem? Puppet.
This causes Puppet to start every service resource defined, on every Puppet run. To “restore” the current runlevel information in utmp, we can switch to init level 4 and back (assuming that your headless server defaults to runlevel 3):
In Red Hat (and CentOS) you can check what services are possibly affected by switching runlevels, using the very same chkconfig tool:
Now the runlevel information in utmp is restored, and chkconfig knows what to do again: