ryg

Автоматический запуск программ в Mac OS X

Когда вы включаете свой Mac, то в фоновом режиме запускается достаточно большое количество процессов, приложений и дополнений. Как правило, эти автоматически запущенные приложения отвечают вашим желаниям, но иногда в Activity Monitor (Мониторинг Системы) можно увидеть приложения, которые Вы не запускали и они вам не нужны. Откуда берутся такие процессы? Ведь данные приложения увеличивают время загрузки операционной системы и могут снизить производительность компьютера. Есть разные методы управления автоматически запускаемыми приложениями в операционной системе Apple Mac OS X.

События при входе пользователя в систему.

Автоматическая загрузка приложений в Mac OS XОткройте вкладку Объекты входа в "Системные настройки->Пользователи и Группы". Там вы увидите список приложений, а иногда папки файлы, которые открываются при каждом входе в систему. Данный список индивидуален для каждого пользователя Mac OS. Большинство из этих приложений при установке не спрашивают "Запускать автоматически при входе в систему". Здесь можно с помощью кнопок "+" и "-" добавить и удалить программы.

 

Элементы автозагрузки

В более ранних версиях OS X для хранения списка программ автозапуска использовала две папки /Library/StartupItems и /System/Library/StartupItems. Теперь Apple рекомендует разработчикам использовать только режим элементов автозагрузки в системных настройках, однако старые программы по-прежнему используют этот механизм. Как правило, папка /System/Library/StartupItems должна быть пустой, но если в ней находится что-либо и это приложение не используется, то этот элемент можно отправить в корзину.

Запуск демонов и агентов

Начиная с OS X 10.4 Tiger, компания Apple предоставила разработчикам еще один механизм для автоматического запуска элементов: запуск демонов и агентов, контролируемый процессом launch. Данный механизм обеспечивает большую гибкость, чем механизмы StartupItems и событий при входе в систему, но он менее прозрачен для пользователей.

Вместо прямого открытия приложений launchd загружает специально отформатированный файл настроек XML (файл с расширением .plist) в котором указаны процессы и при каких условиях.

они должны запуститься. Условия запуска могут быть самые разнообразные: постоянная работа в фоновом режиме, работа по расписанию, по мере необходимости - например, в ответ на произошедшее событие.

Используемые процессом launchhd .plist файлы могут находиться в любой из пяти перечисленных ниже папок, и их расположение определяет, когда они загружаются и с какими правами.

Объекты, находящиеся в каталогах /Library/LaunchDaemons и /System/Library/LaunchDaemons, запускаются во время загрузки операционной системы с правами суперпользователя root.

Объекты из папок /Library/LaunchAgents и /System/Library/LaunchAgents загружаются в момент входа любого пользователя и работают с правами данного пользователя.

Объекты из папки /Users/your-username/Library/LaunchAgents (или ~/Library/LaunchAgents) описывают приложения для конкретного пользователя и работают с его правами.

Не трогать! Файлы настроек, расположенные в папках /Library/LaunchDaemons и /System/Library/LaunchDaemons предназначены для компонентов, являющихся частью OS X, и необходимо много раз подумать, прежде чем трогать там что-либо, так как эти изменения могут серьезно повлиять на работоспособность самой операционной системы. Открытие доступа к папке /System/Library/LaunchDaemons не root пользователям сделает вашу систему не загружаемой.

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

Во время загрузки и во время входа в систему данные из указанных выше папок загружаются и регистрируются в системе. После этого записанные действия и условия будут выполняться до следующей перезагрузки, даже если вы удалите файл настройки. Чтобы получить список всех загруженных команд необходимо в терминале набрать команду launchctl list и нажать ввод.

Для того чтобы остановить запуск элемента без перезагрузки выполните команду:

launchctl unload приложение

Приложение указывается с полным путем, самым простым способом получения полного пути будет перетаскивания элемента из окна Finder в окно терминала (terminal.app). Получится следующий код:

launchctl unload ~/Library/LaunchAgents/com.apple.FolderActions.enabled.plist

Данная команда выгрузит запущенного агента, позволяющего AppleSript работать с папками. Для повторного запуска замените unload на load.

Необходимо понимать, что большинство элементов из этих .plist файлов запускаются по расписанию или по требованию, поэтому процесс, найденный вами в папке в данный момент времени может быть отключен. Чтобы убедиться в активности того или иного процесса можно использовать "Мониторинг Системы", при этом нужно помнить, что имя приложения и имя процесса могут отличаться.

Существуют другие способы, которые могут быть использованы для автоматического запуска приложений:

Расширения ядра или драйверы kext находятся в папке /System/Library/Extensions и также запускаются при запуске операционной системы. Они обеспечивают функции "низкого" уровня, такие как обработка аудио и поддержку периферийных устройств. Большинство кекстов (kext) являются частью операционной системы и удаление сторонних драйверов лучше производить с помощью утилиты удаления выпущенной производителем данного драйвера.

Задания Cron. Cron - это Unix утилита планирования запуска процессов встроенная в Mac OS X. Задания, записанные в Cron можно посмотреть командой терминала

crontab -l

или с помощью утилиты cronnix. Но компания Apple не рекомендует использовать данный механизм для управления процессами в Mac OS X.

Login scripts. Раньше еще существовали сценарии входа в систему или скрипты автозагрузки, которые запускались при входе пользователя. Сейчас данный механизм является устаревшим.