Настройка входа в систему и выхода из системы
Это приложение описывает технологии, исполняющие очень определенные роли. Как правило, если Ваша цель состоит в том, чтобы иметь выполнение процесса, в то время как пользователь зарегистрирован, необходимо почти всегда использовать или демона запуска или агент, как описано в Создании Демонов Запуска и Агентов.
Выполнение агентов перед входом в систему
Программное обеспечение Most, выводящее на экран пользовательский интерфейс, не работает до пользователя, входящего в систему. Однако в некоторых редких случаях, может быть необходимо создать делающий графический агент.
По умолчанию OS X не позволяет никакому приложению рисовать содержание до входа в систему. Если Вам нужен для этого Ваш агент, должен вызвать setCanBecomeVisibleWithoutLogin:
метод на его окнах. Для получения дополнительной информации см. документацию для того метода и примера кода PreLoginAgents.
Плагины аутентификации
Плагины аутентификации являются рекомендуемым способом выполнить задачи во время процесса входа в систему. Плагин аутентификации выполняется, в то время как пользователь входит в систему и, как гарантируют, завершится, прежде чем пользователю разрешат фактически взаимодействовать с его или ее учетной записью.
Если необходимо программно сбросить учетную запись к предопределенному состоянию, выполнить некоторую задачу администрирования, такую как удаление кэшей для сокращения использования сервера, и т.д., Вы могли бы записать плагин аутентификации.
Для узнавания больше о записи плагина аутентификации считайте Выполнение При Входе в систему.
Войдите в систему и выйдите из системы сценарии
Один способ запустить приложения во время входа в систему состоит в том, чтобы запустить их использующий пользовательский сценарий оболочки. При создании файла сценария помните следующее:
Полномочия для Вашего файла сценария должны включать, выполняют полномочия для соответствующих пользователей.
В Вашем сценарии, переменной
$1
возвращает краткое название входящего в систему пользователя.Другие действия входа в систему ожидают, пока Ваш рычаг не заканчивает выполняться. Поэтому Ваш сценарий должен работать быстро.
Используйте defaults
инструмент для установки сценария входа в систему. Создайте файл сценария и поместите его в каталог, который доступен для всех пользователей. В Терминале используйте следующую команду для установки сценария (где /path/to/script
полный путь к Вашему файлу сценария):
sudo defaults write com.apple.loginwindow LoginHook /path/to/script |
Для удаления этого рычага удалите свойство:
sudo defaults delete com.apple.loginwindow LoginHook |
Используйте ту же процедуру, чтобы добавить или демонтировать рычаг выхода из системы, но тип LogoutHook
вместо LoginHook
.
Начальная загрузка или «mach_init» демоны
В OS X v10.3, механизм, подобный launchd
поддерживался для разрешения запуска программ или при системном запуске или на основе в расчете на пользователя. Процесс вовлек размещение специально отформатированного файла списка свойств в любого /etc/mach_init.d
или /etc/mach_init_per_user.d
каталог. Такие демоны также иногда упоминаются как mach_init
демоны.
Использование демонов начальной загрузки осуждают и нужно избежать полностью. Запуск демонов посредством этого процесса может быть удален или устранен в будущем выпуске OS X.
Если необходимо запустить демонов, используйте launchd
средство. Если необходимо запустить демонов на не поддерживающих версиях OS X launchd
, используйте элемент запуска.