2014-03-31 41 views
5

運行Ruby時,是否有全局禁用App Nap的方法?我有一個通過RVM安裝的定製版本,我可以在Finder中獲取信息,但「Disable App Nap」選項不存在。我不知道Ruby的域名嘗試命令行選項:「默認情況下寫ruby NSAppSleepDisabled -bool YES」。在放棄之前,我嘗試了ruby,org.ruby,org.ruby.ruby和org.ruby-lang.ruby。在小牛上禁用應用程序打盹

+0

看起來像一些Python人有同樣的問題:https://support.enthought.com/entries/22861925-OS-X-10-9-Mavericks-Python-Canopy – Jason

+0

聽起來像QT 5.2修復了很多小牛隊的錯誤,所以我可能無法解決這個問題,直到我能夠升級。 – Jason

+0

順便說一句你可以發出「默認域」來找出所有的應用程序域。我發現我的想法不是我想象的。但是禁用App Nap仍然沒有幫助。我認爲QT 4.8.6是個問題。 – Jason

回答

2

App Nap是根據每個應用程序的基礎。您不希望爲任何使用Ruby的內容禁用它。

應用程序應該告訴系統何時不允許應用程序打盹(例如,當您啓動任務時),以及何時允許應用程序重新打盹(例如,任務何時結束)。這將使用Obj-C中的NSProcessInfo類完成。不幸的是,這可能意味着要找到一種方法來通過Ruby - > C/C++ - > Obj-C等途徑與Obj-C進行交流,但這是遠離本地庫的結果。

通過將布爾用戶默認密鑰NSAppSleepDisabled設置爲YES,可以完全禁用每個應用的App Nap,就像您發現的那樣。通過終端,可以這樣做:

defaults write appbundleidentifier NSAppSleepDisabled -bool YES 

這需要具有建立一個Info.plist在您的應用程序與你自己的包標識符。

另外,我相信如果您使用10.8 SDK而不是10.9 SDK進行鏈接,當您在應用程序上獲取信息時,您可能會收到「Prevent App Nap」複選框。這背後的原因是,如果你鏈接到10.9 SDK,你需要實現10.9的App Nap。

+0

我認爲這將需要一個C擴展來禁用它。可能會多一點工作,但是它會在我的所有應用程序中解決。 – Jason

3

沒有什麼可禁用的; Ruby解釋器(在大多數其他命令行應用程序中)不受App Nap約束。

您可以通過活動監視器的「能量」選項卡來驗證。如果還沒有,您可能需要使「App Nap」列可見。

+0

我的一些應用程序是是的,有些是沒有的我正在運行QT GUI應用程序與Ruby和一些spawn線程和其他不要讓我有一個相當複雜的環境。看起來,我似乎沒有成功禁用App Nap,但它肯定會對我產生負面影響。 – Jason

相關問題