Я работаю над службой Mac OS X, управляемой как демон запуска. У него нет графического интерфейса, но он структурирован как приложение Какао, запускаемое с NSApplicationMain.
Кажется, что даже несмотря на отсутствие графического интерфейса пользователя, есть проблема - все работает нормально при запуске через launchctl в окне терминала, но при перезагрузке системы во время запуска процесса я определил, что после вызова NSApplicationMain () процесс получает застрявший. Метод делегата приложения applicationDidFinishLaunching: никогда не вызывается (именно здесь мы инициализируем службу). Также не регистрируется ошибка, и NSApplicationMain () не возвращает.
Я просмотрел Launch Services docs, но я не вижу упоминания об этой проблеме, и я не нашел никакой информации о том, что среда выполнения NSApplication без графического интерфейса требует входа в систему или сервера окна для присутствовать.
У кого-нибудь есть опыт работы с этим, есть общие проблемы или есть окончательный ответ, можно ли запустить службу launchd, не основанную на графическом интерфейсе, во время загрузки?