Отключение элементов автозапуска, которые запускаются самостоятельно

9

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

- Login Items (in the Users preference pane)
- /Library/LaunchAgents
- /Library/LaunchDaemons
- /Library/StartupItems
- /System/Library/LaunchAgents
- /System/Library/LaunchDaemons
- /System/Library/StartupItems
- ~/Library/LaunchAgents
- ~/Library/LaunchDaemons
- ~/Library/StartupItems

По крайней мере, некоторые из этих приложений (например, Day One и Pauses - оба из Mac App Store), похоже, запускают элемент из своих собственных внутренних LoginItemsпапок:

/Applications/Day One.app/Contents/Library/LoginItems/Day One Reminders.app
/Applications/Pauses.app/Contents/Library/LoginItems/PausesLauncher.app

Как добропорядочные граждане, оба приложения позволяют вам отключить поведение при запуске при входе в систему, но это обескураживает, что это поведение, по-видимому, не контролируется из общесистемных предпочтений, и мне нужен способ систематической идентификации / контроля эти элементы входа. Итак, (состоящий из двух частей) вопрос:

  • Что фактически контролирует, активируются ли / как эти специфичные для приложения элементы запуска, и
  • Как я могу получить инвентарь всех этих элементов входа?

[отредактировано для ясности 2013-03-20 11:22 PT]

Дэн
источник
Как вы думаете, почему это не дубликат (помогает избежать повторного получения тех же ответов)? И я предполагаю, что вы испытываете это с конкретными приложениями, не могли бы вы перечислить их в своем вопросе, пожалуйста?
холме
И я думаю, что вы ошибаетесь в первый день. То, что вы перечислили выше, это просто приложение Reminder (menulet), которое запускается, если установлен флажок launch-at-login. Это не песочница LaunchAgents / Daemons.
холме
Благодарю за разъяснение. Возможно, я ошибаюсь по поводу диагноза, но именно здесь я увидел активность, наблюдая за действием «отключить» fs_usage, поэтому я предположил, что именно так и происходит.
Дан
И не обман, потому что на другой вопрос был дан ответ со стандартным списком логинов, которые я перечислил в начале вопроса. Приложения, с которыми я сталкиваюсь (включая первый день), не отображаются в моих элементах входа в систему или в этих каталогах ...
Дан

Ответы:

8

Первый день, кажется, хранит элемент входа в /var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist:

$ /usr/libexec/PlistBuddy -c 'Print _com.apple.SMLoginItemBookmarks:com.dayoneapp.dayone-agent' /var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist
book 0(UserslaurTorrents
                        Day One.apContentsLibrary
LoginItemsDay One Reminders.app $4HXh?kld ????$A????H???A?1M?$5DF7A03E-A7FB-3E80-B61D-F10CD8BF7B5D?/?0c75ae904b0f99cb3a794e7360629c822a0f4a14;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000002;0000000000641712;/users/lauri/torrents/day one.app/contents/library/loginitems/day one reminders.app??????D|@l 0 ? ? ? ?  0 <???????D

Изменение этого значения на true в том же файле отключило его:

<key>com.dayoneapp.dayone-agent</key>
<dict>
    <key>Disabled</key>
    <false/>
</dict>
LRI
источник
1
Хорошо - похоже, что это ответ. Я все еще озадачен, почему это нигде не очевидно: это не на панели настроек «Элементы входа» (предоставлено, для всех пользователей должен быть новый раздел) ... ни в одной из папок запуска ... даже не в лингоне. Из любопытства, как вы узнали, где искать?
Дан
Я запустил fseventer, когда впервые открыл День первый.
Лри
Спасибо, что поделились своими результатами расследования! Иногда я также использую fseventer для приложений мониторинга FS.
porg
2

(Речь идет не о видимых для пользователя элементах входа в Системных настройках пользователей и групп)

Содержимое / Библиотека / LoginItems /, скрытое в комплекте приложений, - это то, что, по-видимому, является реализацией подхода Apple к изолированным приложениям.

Подсказка от @ user495470 о хранении ссылки на элемент входа в систему в /var/db/launchd.db/, похоже, теперь не работает в macOS 10.12

Похоже, что руководство Apple направляется к самодостаточному подходу, в котором LaunchDaemons, LaunchAgents и StartupItems могут быть запрещены в будущем, так как приложения Mac в какой-то момент могут потребоваться для песочницы (личное предположение, а не факт). С другой стороны, API CFPreferences и отправка AppleEvents для запуска устарели ...

Ref:

Хотя в прошлом было легко просматривать информацию о запуске при запуске в вышеупомянутых папках (для каждого Дана), эта новая модель с песочницей, хотя и теоретически безопаснее в эксплуатации, скрывает возможность запуска приложения (или трояна?) От всех обычных пользователей и большинства суперпользователей. кто знает заглянуть в системные каталоги. Поиск этих скрытых элементов входа в систему теперь стал PITA (боль в приложении), когда вы либо просматриваете папку «Приложения», либо вручную открываете пакеты приложений, ища в / Contents / Library / папку «LoginItems» и ее содержимое. Для решения на уровне пользователя я нашел инструмент, который перечисляет встроенные элементы входа в комплект приложений под названием CleanMyMac (может деактивировать или активировать их. Будьте осторожны, приобретите это приложение только у компании. Доступны взломанные версии, которые на самом деле содержат вирус, очень похожий на то, как теперь работают элементы входа (ирония) ..) CleanMyMac показывает выбор элементов входа

И обратите внимание, что эти элементы, включенные или отключенные, не являются частью видимых пользователю «элементов входа» в системных настройках «Пользователи и группы»:

Если вы похожи на меня и работаете над этим на уровне кода, здесь есть сводное руководство по реализации (Тим Шредер, 2013): проект «Запуск в песочнице при входе в систему».

Уильям Чернюк
источник