14

有一些在 MacOSX Mountain Lion 下运行的程序现在(自安装 10.8.2 以来)会导致设置不需要的电源管理断言。我正在寻找一种方法来清除这些断言。

这是一个示例:这些程序中的一个或多个导致在“powerd”中设置以下电源管理断言。注意下面的“powerd”行...

% pmset -g assertions    
10/7/12 11:51:47 AM EDT  
Assertion status system-wide:
   PreventUserIdleDisplaySleep    1
   CPUBoundAssertion              0
   PreventSystemSleep             0
   PreventUserIdleSystemSleep     0
   ExternalMedia                  0
   UserIsActive                   0
   ApplePushServiceTask           0
   BackgroundTask                 0

Listed by owning process:
  pid 18(powerd): [0x00000005000001d7] 11:24:18 PreventUserIdleDisplaySleep named: "com.apple.powermanagement.delayDisplayOff" 
... etc. ...

这些程序退出并在“powerd”中保留此电源管理断言,并且它永远保持活动状态。这可以防止“显示睡眠”和屏幕保护程序被调用。

在这种情况下,我知道的唯一选择(除了重新启动)是在“powerd”进程上执行“kill -HUP”。这会导致该守护进程退出并重新启动而没有错误的断言。

有谁知道我在 10.8.2 下清除“powerd”中的“PreventUserIdleDisplaySleep”断言,而不强制重新启动该守护进程?如有必要,我很乐意通过 Cocoa、Carbon 或 AppleScript 程序执行此操作。

我知道IOPMLib,但该库中的例程似乎只能清除在同一进程中创建的电源断言。我需要一种方法来告诉外部和已经运行的“powerd”进程来清除它管理的“PreventUserIdleDisplaySleep”断言。有谁知道用于在运行的“供电”实例中从外部设置和清除电源管理断言的 API?也许通过某种通知... ???

4

2 回答 2

1

答案很简单。我有同样的问题。

对以下文件夹进行备份,这些文件夹可以在/Library/LaunchAgents/LaunchDaemons/Internet Plug-ins. 下一个。清空文件夹的内容。然后重启你的mac。测试您的能量设置或仅在终端 ( pmset -g assertions) 中测试。你的问题应该得到解决。您可以将文件一一放回以找到导致问题的文件或保留它。

当您使用 Safari 并且缺少插件时,您会弹出一个窗口。您可以简单地重新安装它们。无论哪种方式,您的 mac 都应该可以正常工作。

于 2013-08-27T13:55:44.150 回答
-1

从这里摘录

它说狮子,但这是你看到的同样的问题。

pmset -g

pmset -g 断言

ps -ax | grep [pid 运行]

kill -9 [pid 运行]

于 2013-01-25T04:18:37.980 回答