Systemuiserver mac os что это

Обновлено: 04.07.2024

Когда приложение стороннего разработчика пытается получить доступ к компьютеру Mac и управлять им через функции универсального доступа, Вы получите предупреждение и должны явно предоставить приложению доступ к компьютеру Mac в настройках «Защита и безопасность».

Если Вы доверяете приложению, можно авторизовать его, нажав в предупреждении «Открыть "Системные настройки"», затем установив флажок для приложения в панели «Конфиденциальность». Если Вы не знаете приложение или не хотите в данный момент предоставлять ему доступ к компьютеру Mac, нажмите «Отказать» в предупреждении.

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

Приложения, которым запрещен доступ, перечислены в разделе «Универсальный доступ» панели «Конфиденциальность». Если впоследствии Вы решите предоставить такому приложению доступ к компьютеру Mac, выберите меню Apple



> «Системные настройки», нажмите «Защита и безопасность» , нажмите «Конфиденциальность», нажмите «Универсальный доступ», после чего установите флажок рядом с приложением. Чтобы запретить приложению доступ к компьютеру Mac, снимите флажок. Можно также перетянуть приложение в панель, чтобы добавить его самостоятельно, затем установить флажок этого приложения.

Почти все продвинутые зеркальные камеры, а также некоторые правильные мыльницы, позволяют управлять собой с компьютера. Программное управление камерой дает интересные возможности, например: съемка time lapse video, сопряжение камеры с микроскопом, эксперименты в области компьютерного зрения. Для управления камерой вендоры предоставляют свои проприетарные SDK, которые обычно работают исключительно под Windows и поддерживают камеры только в рамках определенной линейки (например у Canon есть аж 4 несовместимых между собой SDK). Какое счастье, что есть достойная открытая альтернатива — проект gphoto.

Прямо сейчас gphoto поддерживает 1598 моделей камер и список постоянно растет. Проект собирается под все UNIX-like ОС, включая Linux и Mac OS X. Съемкой можно управлять как при помощи command line утилиты, так и из своей собственной программы, используя библиотеку libgphoto. Доступны биндинги для разных языковых платформ, включая node.js.

В современных ОС присутствуют встроенные средства для работы с цифровыми камерами — как правило под «работой» подразумевается только выгрузка фото из камеры. Эти встроенные механизмы препятствуют работе gphoto, так как захватывают USB устройство в эксклюзивном режиме. Особенно интересно дела в этом плане обстоят в Mac OS X — ОС не предоставляет никаких штатных возможностей для отключения, но при этом система поддержки цифровых камер легко поддается реверс инжинирингу.

Скрипты для блокировки запуска PTPCamera на github.

Интернет советует выполнить команду killall -9 PTPCamera (убить процесс PTPCamera) после подключение фотоаппарата для нормальной работы gphoto. Это в самом деле помогает, однако каждый раз при подключении камеры процедуру приходится повторять заново. Разумеется, программу PTPCamera можно просто удалить, но мне хотелось обойтись менее радикальным решением.

В общем, требовалось понять механизм запуска PTPCamera, и максимально корректно отключить эту функцию.

Согласно имеющимся источникам [1,2], инфраструктура захвата изображений в Mac OS X устроена следующим образом.


На вершине стека расположены приложения, с которыми непосредственно взаимодействует пользователь (ex: iPhoto).

В самом низу расположены приложения для управления устройствами, к числу последних относится PTPCamera. Приложения для управления устройствами ( MassStorageCamera.app , PTPCamera.app , TWAINBridge.app и тд.) живут в системных папках /System/Library/Image Capture/Devices и /Library/Image Capture/Devices .

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

Попробуем определить механизм запуска PTPCamera, и для начала определим родительский процесс.

Итак, мы видим что PTPCamera запущен процессом launchd. В Mac OS X launchd — это универсальная запускалка для системных и пользовательских демонов. В системе запущено по экземпляру launchd для каждого активного пользователя. Launchd пользователя root выполняет те же функции, что init в традиционных UNIX системах.


Кроме демонов, laucnhd также запускает графические приложения по команде других программ. PTPCamera — это именно последний случай, как можно убедиться по ID задачи в launchd, об этом нам говорит [префикс].


Итак, мы знаем что PTPCamera был запущен процессом launchd, по команде некого приложения X.

Включим логирование launchd ( launchctl log level debug ), и спровоцируем повторный запуск PTPCamera.

Добавляем в файл /etc/syslog.conf строку
и информируем демон syslogd о необходимости перечитать настройки
Анализируем полученный файл debug.log . Находим искомое:
Запрашиваем у launchd информацию о com.apple.SystemUIServer.agent :

Теперь мы знаем, что «виновник» запуска PTPCamera — это SystemUIServer , ни много ни мало.

Имеется подозрение, что искомый функционал находится не в самом SystemUIServer , а в одном из прилинкованных фреймворков:

В этом списке главный подозреваемый — ICANotifications.framework . ICA — это сокращение от image capture, тот же акроним используется в публичных фреймворках для захвата изображений.

Лирическое отступление. Исполняемый файл состоит из кода и неизменяемых статических данных (разные константы, таблицы, и тп.) Особый интерес представляют строковые константы. Извлечь их можно при помощи команды strings .

Запускаем strings /System/Library/PrivateFrameworks/ICANotifications.framework/Versions/A/ICANotifications , и наслаждаемся результатами:

Итак, рабочая гипотеза — библиотека работает с SQLite базой данных, наиболее вероятно, что это файл com.apple.ImageCaptureNotifications.DeviceDiscoveryDatabase в /Library/Caches .

Видно, что в конец имени ( com.apple.ImageCaptureNotifications.DeviceDiscoveryDatabase.501 ) дописывается ID пользователя, для каждого пользователя поддерживается собственный файл. Из содержимого понятно, что база задает список соответствий класса устройств и управляющей программы, которую нужно запускать при обнаружении устройства.

Редактирую базу данных, мы отключаем запуск PTPCamera для любого выбранного пользователя, это однозначный успех!

При необходимости вернуть все обратно, откатываем изменения, или просто удаляем файл бд (название папки /Library/Caches сообщает нам, что ОС при необходимости может перегенерировать содержимое).

4 ответа

Такая же проблема. Проблема вызвана сторонним виджетом, который использует Интернет. Для меня проблема с Dropbox была проблемой. Если dropbox обновляет мои файлы, systemyserver продолжает использовать большой объем процессора. Единственное решение - заставить его выйти (используя терминал или монитор активности) или отключить сторонний виджет.

Похоже, на самом деле есть несколько способов решить эту проблему.

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

Итак, я нашел из этой статьи , что вы можете просто убить SystemUIServer процесс, и он просто перезапустится, и все снова будет хорошо.

Чтобы убить процесс SystemUIServer, вы можете просто открыть Activity Monitor, Filter by Process Name или% CPU (так как это, скорее всего, самый высокий пользователь CPU), затем выберите «SystemUIServer» и выберите «Quit Process» из параметры в верхней части окна (кнопка, которая выглядит как знак остановки).

Как только вы убьете этот процесс, OS X просто повторно инициирует процесс, и вы должны вернуться в нужное русло. Однако это кажется лишь временным решением, и вы можете столкнуться с ним снова.

Итак, для более постоянного решения (если вы не боитесь рисковать на конечную землю), попробуйте выполнить процесс, описанный в этой статьи , которая была предоставлена ​​ Джошуа Тейлором , где вы добавляете задание cron для OS X, которое перезапускает SystemUIServer в начале каждого другого часа (автоматизация решения выше для этой проблемы):

Откройте терминал (/Applications/Utilities/Terminal.app).

Тип:

crontab -e

.. и нажмите enter.

Нажмите букву «a» на клавиатуре.

Введите следующие данные, используя вкладки для больших разделов:

0 */2 * * * killall SystemUIServer

Нажмите клавишу эвакуации на клавиатуре.

Тип:

:wq

.. (это двоеточие, w затем q) и нажмите enter.

Закрыть Terminal.app.

Это завершит процесс только в том случае, если время процессора превышает 5 минут:

*/15 * * * * [[ "$(ps -e | grep SystemUIServer | awk '')" > 5:00.00 ]] && killall -kill SystemUIServer

Если вы не знаете, как использовать vi, вы можете изменить crontab с помощью EDITOR=nano crontab -e .

Недавно у меня была такая же проблема на Mac 10.0.5 с установленной DropBox. Обновление текущей версии DropBox (2.6.2) помогло значительно, но не полностью. Вместо того, чтобы система замедлялась с вращающимся радужным колесом, а SystemUIServer сообщал о 98% -ном использовании процессора (несколько раздражающих) раз в день, сейчас он сокращается до двух раз.

Favorite

В закладки

ScreenShotsMacMain

Сегодня комбинацией клавиш CMD + Shift + 3 никого не удивишь, но разработчики OS X решили свести базовые возможности изменения каких-либо параметров пользователем к минимуму. Эту досадную оплошность мы и постараемся решить в сегодняшней статье с помощью Терминала.

Список стандартных комманд

Для тех, кто знаком с платформой Mac не так давно, разобраться как же все-таки делать скриншоты штатными средствами будет нелегко. Именно поэтому пользователю приходится искать соответствующее ПО на просторах Mac App Store. Но спешить не стоит, программисты предусмотрели возможность захвата экрана OS X без какого-либо стороннего софта, используя несколько комбинаций клавиш:

AppleShortcut

Казалось бы, проблема решена и теперь со спокойной душой можно делать десятки скриншотов всего за несколько секунд, при этом не используя сторонних приложений. Увы, в момент, когда приходится делать большое количество подобных снимков экрана, уже через несколько минут ваш рабочий стол превращается в большую мусорку. Как организовать рабочее пространство в OS X мы рассматривали в отдельной статье.

ScreenShotsMac

Меняем директорию сохранения скриншотов

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

    1. На рабочем столе создайте отдельную папку Screenshots. Можно использовать и другое имя папки, но строго в латинице и с дальнейшей корректировкой командной строки.
    2. Откройте Терминал.
    3. В командную строку введите (один из вариантов: Рабочий стол или Изображения):

defaults write com.apple.screencapture location /Users/[USER]/Desktop/Screenshots/

строка для сохранения на Рабочий стол. Вместо [USER] впишите свое имя пользователя:

defaults write com.apple.screencapture location /Users/[USER]/Pictures/Screenshots/

Введите строку, перезапускающую приложение:

killall SystemUIServer

Теперь любой скриншот будет отправляться в указанную вами папку, а рабочий стол избавится от докучающих «Снимков-экрана-от-такого-то-числа».

Убираем тени со скриншотов окон

Несмотря на то, что с выходом OS X Yosemite Apple полностью отказалась от идей скевоморфизма и представила плоскую операционную систему, лишенную теней и эффектов объемности, до скриншотов у разработчиков руки еще не дошли. В связи с этим, любые скриншоты, сделанные при помощи вышеописанных комбинаций клавиш, снабжаются мягкой тенью. Выглядит это и правда красиво, но для блоггеров и редакторов сайтов нередко становится лишней головной болью.

ShadowWindow

Отключить тени можно с помощью старого-доброго Терминала. Для этого достаточно вбить в Терминал всего две строки:

defaults write com.apple.screencapture disable-shadow -bool true

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

defaults write com.apple.screencapture disable-shadow -bool false

GrabOSX

Меняем формат файлов

В терминале достаточно вести всего несколько строк. Для смены требуемого формата используйте следующие: jpg, tiff, gif, png, pdf (менять в конце первой строки):

defaults write com.apple.screencapture type jpg

Результат сжатия на лицо:

SampleJpgFormatt1B


Используя описанные в статье советы, вы сможете обходиться без сторонних приложений, а работа со скриншотами на Mac станет значительно продуктивнее.

UPDATE:
Для смены имени файла воспользуйтесь командами:

defaults write com.apple.screencapture name [file name]
killall SystemUIServer

Вместо [file name] используйте предпочтительное имя на латинице. Увы, избавиться от даты и времени не удастся.

(1 голосов, общий рейтинг: 5.00 из 5)

Favorite

В закладки

Улучшаем производительность OS X с помощью терминала

Большая часть настроек в OS X, которые доступны пользователю, находится в основной программе Системные настройки, но если Вы хотите сделать более тонкую настройку или же внести некоторые важные изменения в операционную систему, тогда вам нужно прибегнуть к использованию программы Терминал. В этой статье мы поможем вам разобраться, как можно улучшить производительность OS X при помощи терминала.

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

Терминал можно запустить несколькими способами:

  1. Перейти в папку Программы → Утилиты и открыть Терминал, кликнув мышкой по иконке программы
  2. Открыть Launchpad и перейти в папку Другие и открыть программу Терминал, кликнув на ней мышкой
  3. Вызвать окно поиска Spotlight , нажав на клавиатуре сочетания клавиш Ctrl + Пробел и ввести «Терминал» после чего нажать Enter

Очистка оперативной памяти

Если в вашем Mac установлено мало оперативной памяти, то данная команда для вас будет очень полезной, так как она выгружает из памяти не используемые процессы и освобождает этим зарезервированное под них место:

Скрыть или отобразить пользовательские файлы и папки

Если Вы имеете важную информацию и хотите скрыть ее от сторонних глаз, тогда введите команду:

Если же наоборот, желаете увидеть скрытые файлы и папки снова, а также хотите отобразить некоторые системные папки - используйте команду:

Отобразить все скрытые файлы в Finder

Finder по умолчанию не показывает скрытые файлы. Если Вы хотите их видеть, то воспользуйтесь командой:

defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder

Скрыть файлы обратно:

defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder

Очистка рабочего стола

Если Вы, еще со времен работы с Windows, храните на рабочем столе кучу файлов и это напоминает мусорное ведро, то с помощью следующей команды, все иконки будут скрыты. Ваш стол станет совершенно чист, но файлы все также будут видны в Finder

defaults write com.apple.finder CreateDesktop -bool false && killall Finder

Показать иконки по умолчанию:

defaults write com.apple.finder CreateDesktop -bool true && killall Finder

Отображение системной информации на экране блокировки входа в систему

sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName

Удаляем задержку при появлении Dock

Владельцы переносных компьютеров Mac имеющее небольшую диагональ дисплея, а это MacBook Air 11" и 13", а также MacBook Pro 13", часто чтобы увеличить рабочее пространство, используют автоматическое скрытие панели Dock. Но до появлении панели проходит некоторое время, чтобы убрать эту задержку используйте команду:

defaults write com.apple.Dock autohide-delay -float 0 && killall Dock

Чтобы вернуть все обратно:

defaults delete com.apple.Dock autohide-delay && killall Dock

Увеличиваем скорость анимации Mission Control

Если Вы хотите увеличить скорость анимации при вызове Mission Control, тогда используйте команду:

defaults write com.apple.dock expose-animation-duration -float 0.12 && killall Dock

Вернуть прежнее значение:

defaults delete com.apple.dock expose-animation-duration; killall Dock

Возможность копирования текста в режиме быстрого просмотра

defaults write com.apple.finder QLEnableTextSelection -bool TRUE;killall Finder

Вернуть по умолчанию:

defaults delete com.apple.finder QLEnableTextSelection;killall Finder

Копирование почтовых адресов в Mail

Проблема при копировании есть и в программе Mail, так как при копировании и вставке адреса электронной почты у вас вставляется не только email, но и имя контакта. Чтобы раз и навсегда решить эту проблему воспользуйтесь командой:

defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false

Если захотите вернуть все обратно, тогда выполните следующую команду:

defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool true

Смена формата файлов скриншотов с PNG на другой

По умолчанию OS X сохраняет все сделанные вами скриншоты в формате png . Если Вы хотите изменить формат на jpg , gif , tiff или pdf , тогда используйте команду с нужным для вас форматом:

defaults write com.apple.screencapture type jpg && killall SystemUIServer
defaults write com.apple.screencapture type gif && killall SystemUIServer
defaults write com.apple.screencapture type tiff && killall SystemUIServer
defaults write com.apple.screencapture type pdf && killall SystemUIServer

Решите обратно использовать png , введите:

defaults write com.apple.screencapture type png && killall SystemUIServer

Меняем папку для сохранения скриншотов по умолчанию

defaults write com.apple.screencapture location /Pictures/Screenshots

После чего все новые скриншоты будут сохранятся в папке с одноименным названием Скриншоты в папке Картинки. Вы можете изменить путь в команде на свое усмотрение.

Если Вы захотите вернуть значение по умолчанию, тогда вам поможет команда:

defaults write com.apple.screencapture location /Desktop/ && killall SystemUIServer

Удаляем эффект тени со скриншотов

Скриншоты сделанные в OS X с помощью комбинаций клавиш ⌘Cmd + ⇧Shift + 4 + Пробел по умолчанию сохраняются с эффектом тени. Если же Вы хотите ее убрать, то введите в терминале следующую команду:

defaults write com.apple.screencapture disable-shadow -bool true && killall SystemUIServer

После этой команды все скриншоты отдельных окон будут сохранятся без тени.

Вернуть все обратно и снова добавить тень вам поможет команда:

defaults write com.apple.screencapture disable-shadow -bool false && killall SystemUIServer

Если нужно убрать тень со скриншота только один раз, используйте команду:

После чего, скриншот будет сохранен на Рабочем столе с именем "withoutShadow.jpg".

Добавляем в Dock папку с недавно запущенными программами

Очень удобная фича, в одной папке отображаются 10 приложений, которые были запущенны последними. Для добавления папки в Dock воспользуйтесь командой:

defaults write com.apple.dock persistent-others -array-add '; "tile-type" = "recents-tile";>'; killall Dock

Используя эти команды, Вы сможете значительно увеличить производительность и удобство при работе с Mac.

Подписывайтесь на наши сообщества в социальных сетях, а также добавляйте статью себе в закладки

Читайте также: