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 pmsets 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.