自分で実行するスタートアップアイテムを無効にする


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

これらのアプリの少なくともいくつか(たとえば、Mac App StoreのDay OneとPauses)は、独自の内部LoginItemsフォルダーからアイテムを起動しているようです:

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

善良な市民として、どちらのアプリでもログイン時の起動動作を無効にできますが、この動作はシステム全体の設定から制御できないように思われ、体系的に識別/制御する方法が欲しいですこれらのログイン項目。したがって、(2部構成の)質問は次のとおりです。

  • これらのアプリ固有の起動項目がアクティブ化されているかどうか/どのようにアクティブ化されているか、および
  • これらすべてのログインアイテムのインベントリを取得するにはどうすればよいですか?

[明確にするために編集2013-03-20 11:22 PT]



なぜ重複していないと思いますか(同じ答えが再び得られないようにするのに役立ちます)?そして、あなたは特定のアプリケーションでこれを経験していると思います、あなたの質問にそれらをリストしてください。
nohillsideの

そして、あなたはDay Oneを間違えていると思います。上記のリストは、起動時ログインがオンになっている場合に開始されるリマインダーアプリ(メニューレット)です。サンドボックス化されたLaunchAgents / Daemonsフォルダーではありません。
nohillsideの

説明をありがとう。私は診断について誤解しているかもしれませんが、で「無効」アクションを見ているときにアクティビティを見たfs_usageので、それが起こっていると思いました。
ダン

そして、他の質問は、質問の最初にリストしたログイン項目の標準リストで回答されたため、だまされません。私はこれが(一日目を含む)で起こる見ているアプリケーションは...私のログイン項目またはそれらのディレクトリには表示されません
ダン

回答:


8

1日目は、ログイン項目を/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>

1
いいですね-それが答えだと思われます。これが明らかにどこにも表示されない理由に私はまだ困惑しています:ログイン項目設定ペインにはありません(すべてのユーザーに新しいセクションが必要です)...起動フォルダーにはありません...リンゴンでもない。好奇心から、どこを見るべきかをどのようにして知りましたか?
ダン

Day Oneを初めて開いたときにfseventerを実行しました。
2

調査結果を共有していただきありがとうございます!FS監視アプリケーションにもfseventerを使用することがあります。
ポーグ

2

(これは、ユーザーとグループのシステム環境設定でユーザーに表示されるログイン項目に関するものではありません)

アプリケーションバンドルに埋め込まれているContents / Library / LoginItems /は、サンドボックスアプリに対するAppleのアプローチの実装のようです。

/var/db/launchd.db/のログイン項目参照の保存に関する@ user495470からのヒントは、macOS 10.12で廃止されたようです。

Appleの方向は、アプリが自己完結型のアプローチに向かっているように見えます。Macアプリはある時点でサンドボックス化される必要があるため(実際ではなく、個人的な推測)、LaunchDaemons、LaunchAgents、およびStartupItemsは今後立ち入り禁止になる可能性があります。一方、CFPreferences APIと起動するAppleEventの送信は非推奨です...

参照:

過去には、スタートアップの起動情報について前述のフォルダーを簡単に確認できましたが(ダンごと)、この新しいサンドボックスモデルは、理論的には操作上安全ですが、すべての通常ユーザーとほとんどのスーパーユーザーからアプリ(またはトロイの木馬)のスタートアップ機能を隠しますシステムディレクトリを調べることを知っている人。これらの非表示のログインアイテムを見つけることは、アプリケーションフォルダーを介してgrepを実行するか、/ Contents / Library /で「LoginItems」フォルダーとそのコンテンツを探してアプリバンドルを手動で開くPITA(アプリの痛み)になりました。ユーザーレベルのソリューションでは、CleanMyMacというログインアイテムが埋め込まれたアプリバンドルを一覧表示するツールを見つけました (無効化または有効化することができます。注意してください、このアプリは会社からのみ入手してください。ログインアイテムの動作方法(皮肉)に非常によく似た方法で実際にウイルスを運ぶ利用可能なクラックバージョンがあります。) CleanMyMacにログインアイテムピッカーが表示される

また、有効または無効になっているこれらのアイテムが、「ユーザーとグループ」システム環境設定の下にあるユーザーに表示される「ログインアイテム」の一部ではないことに注意してください。

あなたが私のようで、コードレベルでこれを実行している場合、実装の統合ガイドはこちら(Tim Schroeder 2013):ログインサンドボックスプロジェクトでの起動

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.