2016-02-14 1 views
2

Я работаю над новым процессом Daemon OS-X (запускается с запуска) и хотел бы получить всплывающее окно каждый раз, когда он вылетает со всей необходимой информацией (pid, путь к файлу сбоев и т. д.). Это наверняка поможет моим усилиям по отладке на ранней стадии разработки.Запуск приложения «неожиданно неожиданно» всплывающее окно при сбое операционной системы OS X

В принципе, я хочу иметь то же поведение, что и приложение пользовательского интерфейса. Например: enter image description here

Я провел некоторое исследование и узнал о CrashReporter, но я не знаю, как зарегистрировать свое приложение для этой службы. Но похоже, что нет никакой возможности запускать всплывающие окна из этой службы, так как сбои - это события уровня системы, и приложения имеют нулевое взаимодействие с ними.

Возможно, есть способ сделать это, установив некоторые параметры в комплекте приложений или через Info.plist?

РЕДАКТИРОВАТЬ: смотря на руководство отчета о сбое, похоже, что неожиданный диалог работает только в пользовательском режиме GUI, а не на демоне, который запускается с запуска. возможно, я что-то упустил?

Кроме того, если программа, разбился работает как зарегистрированный пользователь GUI, CrashReporter будет представлять пользователю диалоговое окно с запросом, хочет ли он, чтобы представить отчет об ошибке в Apple (см рисунок 1). Если пользователь нажимает кнопку «Отчет», CrashReporter отображает другое диалоговое окно, в котором отображаются детали отчета (см. Рис. 2), и позволяет им комментировать его перед отправкой.

Я прочитал, что опция разработчика включена в дополнение к сбоям приложений, аварийные сообщения также отображаются для фоновых и системных процессов. но, к сожалению, я не работаю для меня.

благодаря

+0

Apple CrashReporter контролирует все процессы, включая демонов и даже самого ядра. Если сбой демона, хотя вы не получили уведомление, вы можете просмотреть его журнал сбоев в приложении консоли в разделе «Отчеты по диагностике системы». Для этого не нужно регистрировать свое приложение с Crash Reporter. – TheDarkKnight

+0

@thedarkknight, мне действительно удалось наблюдать файл аварии для моего фонового процесса. однако, по удобным причинам, я также хочу иметь всплывающее окно. Является ли это возможным ? – Zohar81

+0

Напишите графическое приложение, которое отслеживает процесс вашего демона и уведомляет вас о его сбое. Помимо этого, я ничего не знаю о OS X, который может сделать это за вас. – TheDarkKnight

ответ

0

Похоже, проблема возникает, так как мой фоновый процесс запускается под корень привилегии, и корень privilage процесс (а не только демоны) не может инициировать любой виджет пользовательского интерфейса на экране.

Я полагаю, что единственный способ справиться с этим - это поймать сигнал, который вызывает сбой, и отправлять детали прокси-процесса, которые выполняются в режиме без полномочий root, и могут инициировать диалоговое окно пользовательского интерфейса с деталями сбоев.

Я был бы рад услышать за лучшие предложения.

Смежные вопросы