Консоль R и сообщения `didBecomeActive`

TL; DR: в RGUI и ESS, каковы didBecomeActive сообщения и как их подавить?


Работая с OSX RGUI 3.0.3 в OSX 10.9.2, консоль отображает то, что выглядит как запись сообщений в журнал всякий раз, когда приложение RGUI становится активным. Смотрите скриншот ниже

RGUI

Нечто подобное происходит, когда я взаимодействую с R из Emacs, используя ESS. Обычно это происходит всякий раз, когда я использую графическое устройство по умолчанию, например, вызывая простое plot функция. Когда я закрываю окно, содержащее график, или просто перефокусируюсь на другой Emacs didBecomeActive сообщение. С ESS это особенно раздражает, потому что буфер стал доступным только для чтения, и я не могу напрямую взаимодействовать с консолью (обходной путь должен C-c C-q попытаться выйти из процесса R, но затем отменить запрос с c).

ESS

Вопрос

Кажется, это связанные проблемы. Что это за сообщения? Как я могу их подавить? Как я могу восстановить контроль над консолью R в Emacs/ESS автоматически после использования графического устройства?


редактировать

Эти сообщения вошли в систему 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!

2 ответа

Это неправильный ответ, но вы можете хотя бы избежать этого, перенаправляя stderr в файл при запуске?

rcmd > stdout.log 2> stderr.log

Вы также можете поиграть с функцией R sink(), чтобы попытаться подавить это.

Это не имеет ничего общего с R. Появляется быстрый поиск didBecomeActive со ссылкой на GKTurnBasedEventListener на сайте разработчиков Apple. Возможно, у вас (была?) Пошаговая игра, запущенная в другом месте вашей системы (которая могла рухнуть и потерять свой путь, оставив поток все еще работающим), и ваш сеанс R получает сигналы, предназначенные для "старого" pid. Быстрая перезагрузка должна исправить это или открыть новый терминал и ps aux, чтобы возможно увидеть ошибочный поток и убить -9 его.

Другие вопросы по тегам