/var/run contains a hald directory owner and group haldaemon which, I assume, is intended to hold hald's pidfile. hald.pid is placed as /var/run/hald.pid but the stop logic within /etc/init.d/hald references hald.pid in /var/run/hald. This causes HAL not to be shutdown correctly. Reproducible: Always Steps to Reproduce: 1. Observe the shutdown messages 2. 3.
did you run etc-update?
Please run etc-update after updating as steev suggested. You may have to re-emerge hal as the updates may have been lost accidentally (thats happened to me before).
(In reply to comment #1) > did you run etc-update? Yes. I completely removed dbus and hal, removed their /etc directories and emerged them individually running, etc-update afterwards for each. /etc/init.d/hald has the following: stop() { ebegin "Stopping Hardware Abstraction Layer daemon" start-stop-daemon --stop -q --pidfile /var/run/hald/hald.pid eend $? } and hald.pid is in /var/run: neil@aurora ~ $ ls -l /var/run/hald.pid -rw-r--r-- 1 root root 6 Dec 3 07:54 /var/run/hald.pid I don't see any specific configuration for hald in /etc that sets its pidfile location. I'm not a newbie to emerge and if there's a problem that requires unmerging/emerging of a package to get it to operate properly then it definitely needs attention.
I just unmerged hal and physically removed /etc/init.d/hald then emerged hal again. This time /etc/init.d/hald was replaced with a version having the correct path to hald.pid. So, my previous emerges of hal had left an old version of /etc/init.d/hald behind and the newer version never prompted for me to apply changes during etc-update. I recall seeing etc-update saying "nothing to do" after all emerges of hal.
I though you've removed them before, at least you've told us so in comment #3. INVALID.