How do I get rid of this power assertion from a dead process?
I have the screensaver on my MacBook set to kick in after two minutes of inactivity and require a password immediately after it does. Normally, this works fine, but in the last week or so, the screensaver hasn't come on at all. After skimming pmset
s manual page, I made this discovery:
$ pmset -g assertions
2015-04-11 22:30:47 -0700
Assertion status system-wide:
BackgroundTask 0
ApplePushServiceTask 0
UserIsActive 1
PreventUserIdleDisplaySleep 1
PreventSystemSleep 0
ExternalMedia 0
PreventUserIdleSystemSleep 1
NetworkClientActive 0
Listed by owning process:
pid 71(hidd): [0x004d32870009146b] 12:40:26 UserIsActive named: "com.apple.iohideventsystem.queue.tickle"
Timeout will fire in 7192 secs Action=TimeoutActionRelease
pid 19013(AddressBookSour): [0x00332e3200050457] 486:17:00 PreventUserIdleDisplaySleep named: "com.apple.avkit.disableUserIdleDisplaySleep"
Details: disable user idle display sleep
Kernel Assertions: 0x100=MAGICWAKE
id=504 level=255 0x100=MAGICWAKE mod=2015-04-11, 12:44:09 description=en1 owner=en1
If I'm reading this right, the latter assertion there would prevent the screensaver from kicking in or the display from going to sleep. (Presumably the former assertion exists only because I'm actively using the machine.) The problem is…it belongs to a process that doesn't exist at this point.
$ ps -e | grep 19013
$
No wonder the screensaver isn't activating.
Am I right? What might be causing this assertion to stick around after its process died? Short of logging out or rebooting, how do I get rid of it?
I had the same issue: a PreventUserIdleDisplaySleep
assertion set by a process that was no longer active. Killing the powerd process (to be restarted by launchd) cleared the assertion without logging out or rebooting.
$ ps -e | grep powerd
63 ?? 0:00.05 /System/Library/CoreServices/powerd.bundle/powerd
$ sudo kill 63
I'm not sure about any undesirable side effects might occur when killing powerd, however.