【问题标题】:R console and `didBecomeActive` messagesR 控制台和“didBecomeActive”消息
【发布时间】:2014-03-14 01:24:11
【问题描述】:

TL;DR:在 RGUI 和 ESS 中,didBecomeActive 消息是什么以及如何抑制它们?


在 OSX 10.9.2 中使用 OSX RGUI 3.0.3,控制台会显示日志消息的样子 每当 RGUI 应用程序变为活动状态时。请看下面的截图

当我在 emacs 中使用 ESS 与 R 交互时,也会发生类似的情况。通常每当我使用默认图形设备时都会发生这种情况,例如调用简单的plot 函数。当我关闭包含图表的窗口或只是重新聚焦到 emacs 时,另一个 didBecomeActive 消息。对于 ESS,这尤其令人讨厌,因为缓冲区已变为只读,我无法直接与控制台交互(解决方法是 C-c C-q 尝试退出 R 进程,然后使用 c 取消请求)。

问题

这些似乎是相关的问题。这些信息是什么?我怎样才能压制他们?使用图形设备后,如何在 Emacs/ESS 中自动重新获得对 R 控制台的控制权?


编辑

这些消息记录在system.log 中,并且似乎未经过滤地流入 R 控制台。 这是摘录

Mar 14 12:56:41 xxx-mbp.att.net Google Chrome[1075]: didBecomeActive!
Mar 14 12:56:44 xxx-mbp.att.net Adium[17018]: didBecomeActive!
Mar 14 12:56:45 xxx-mbp.att.net Emacs[5455]: didBecomeActive!
Mar 14 12:56:46 xxx-mbp.att.net Google Chrome[1075]: didBecomeActive!
Mar 14 12:56:47 xxx-mbp.att.net R[16531]: didBecomeActive!
Mar 14 12:56:49 xxx-mbp.att.net Google Chrome[1075]: didBecomeActive!
Mar 14 12:56:53 xxx-mbp.att.net R[16531]: didBecomeActive!
Mar 14 12:56:54 xxx-mbp.att.net Emacs[5455]: didBecomeActive!
Mar 14 12:56:56 xxx-mbp.att.net Google Chrome[1075]: didBecomeActive!

【问题讨论】:

  • 不知道原因。至于ESS,是按“RET”还是按C-c C-c帮助?
  • 帮助和迷你缓冲区都没有抱怨Text is read only

标签: r emacs osx-mavericks ess rgui


【解决方案1】:

这与 R 无关。 快速搜索出现了在 Apple 开发人员网站上与 GKTurnBasedEventListener 相关的 didBecomeActive 引用。您可能(曾经?)在系统的其他地方运行了一个回合制游戏(它可能已经崩溃并迷失了方向,使线程仍在运行)并且您的 R 会话正在获取用于“旧”pid 的信号。 快速重启应该可以修复它或打开一个新终端并 ps aux 可能会看到错误的线程并杀死 -9 它。

【讨论】:

  • 感谢您的回答。不幸的是,重新启动并没有帮助。我在不同的机器和 OSX 版本(10.7、10.8、10.9)上遇到了同样的问题。这些机器上都没有游戏。
【解决方案2】:

这不是一个正确的答案,但您至少可以通过在启动时将 stderr 重定向到文件来避免这种情况?

rcmd > stdout.log 2> stderr.log

您也可以使用 R sink() 函数来尝试抑制这些东西。

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    相关资源
    最近更新 更多