Menonaktifkan item startup yang berjalan sendiri

9

Saya telah menemukan beberapa aplikasi yang tampaknya dapat diluncurkan sendiri saat startup, meskipun tidak muncul di tempat biasa ...

- 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

Setidaknya beberapa aplikasi ini (mis. Hari Pertama dan Jeda - keduanya dari Mac App Store) tampaknya meluncurkan item dari LoginItemsfolder internal mereka sendiri :

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

Sebagai warga negara yang baik, kedua aplikasi memungkinkan Anda untuk menonaktifkan perilaku launch-on-login, tetapi membingungkan bahwa perilaku ini tampaknya tidak dapat dikendalikan dari preferensi seluruh sistem, dan saya ingin cara mengidentifikasi / mengontrol secara sistematis barang-barang login ini. Jadi, pertanyaan (dua bagian) adalah:

  • Apa yang sebenarnya mengendalikan apakah / bagaimana item peluncuran khusus aplikasi ini diaktifkan, dan
  • Bagaimana saya bisa mendapatkan inventaris dari semua item login ini?

[diedit untuk kejelasan 2013-03-20 11:22 PT]

Dan
sumber
Mengapa menurut Anda itu bukan duplikat (membantu mencegah mendapatkan jawaban yang sama lagi)? Dan saya menganggap Anda mengalami ini dengan aplikasi spesifik, bisakah Anda mencantumkannya dalam pertanyaan Anda?
nohillside
Dan saya pikir Anda salah mengira tentang Hari Satu. Hal yang Anda sebutkan di atas hanyalah aplikasi Pengingat (menulet) yang memulai jika peluncuran-saat-masuk dicentang. Ini bukan folder LaunchAgents / Daemon yang dikotak pasir.
nohillside
Terimakasih atas klarifikasinya. Saya mungkin salah tentang diagnosis, tetapi di situlah saya melihat aktivitas ketika menonton aksi "menonaktifkan" fs_usage, jadi saya berasumsi bahwa itulah yang terjadi.
Dan
Dan, bukan penipuan karena pertanyaan lain dijawab dengan daftar standar barang masuk yang saya daftarkan di awal pertanyaan. Aplikasi Saya melihat ini terjadi dengan (termasuk Hari Pertama) tidak muncul dalam Produk Login saya atau direktori tersebut ...
Dan

Jawaban:

8

Hari Pertama tampaknya menyimpan item login di /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

Mengubah ini menjadi benar dalam file yang sama menonaktifkannya:

<key>com.dayoneapp.dayone-agent</key>
<dict>
    <key>Disabled</key>
    <false/>
</dict>
Lri
sumber
1
Bagus - sepertinya itu jawabannya. Saya masih bingung mengapa ini tidak muncul di tempat yang jelas: itu tidak ada di panel preferensi Item Login (memang, harus ada bagian baru untuk semua pengguna) ... tidak di folder peluncuran ... bahkan di Lingon. Karena penasaran, bagaimana Anda tahu ke mana harus mencari?
Dan
Saya menjalankan fseventer ketika saya membuka Hari Pertama untuk pertama kalinya.
Lri
Terima kasih telah berbagi hasil investigasi Anda! Saya kadang-kadang juga menggunakan fseventer untuk aplikasi pemantauan FS.
porg
2

(Ini bukan tentang item Login yang terlihat pengguna di bawah Preferensi Sistem Pengguna & Grup)

Isi / Perpustakaan / LoginItem / terkubur dalam bundel aplikasi adalah apa yang tampaknya merupakan implementasi pendekatan Apple untuk aplikasi kotak pasir.

Kiat dari @ user495470 tentang penyimpanan referensi item masuk di /var/db/launchd.db/ tampaknya sekarang sudah tidak ada di macOS 10.12

Arahan Apple tampaknya menuju ke pendekatan mandiri aplikasi di mana LaunchDaemons, LaunchAgents, dan StartupItems mungkin terlarang di masa depan karena aplikasi Mac mungkin diharuskan di-sandbox di beberapa titik (dugaan pribadi, bukan fakta). Di sisi lain CFPreferences API dan mengirim AppleEvents untuk diluncurkan sudah usang ...

Ref:

Sementara di masa lalu mudah untuk melihat di folder yang disebutkan di atas untuk informasi peluncuran startup (per Dan), model berpasir baru ini, sementara secara teoritis lebih aman secara operasional, menyembunyikan kemampuan startup aplikasi (atau Trojan?) Dari semua pengguna normal dan sebagian besar pengguna super yang tahu untuk melihat di direktori sistem. Menemukan Item Login yang tersembunyi ini sekarang telah menjadi PITA (rasa sakit di app) dengan mengambil jalan Anda melalui folder Aplikasi atau secara manual membuka bundel aplikasi mencari di / Contents / Library / untuk folder "LoginItems" dan isinya. Untuk solusi tingkat pengguna, saya memang menemukan alat yang mencantumkan bundel aplikasi yang dibenamkan Item Masuk yang disebut CleanMyMac (dapat menonaktifkan atau mengaktifkannya. Berhati-hatilah, hanya dapatkan aplikasi ini dari perusahaan. Ada versi crack yang tersedia yang benar-benar membawa virus dengan cara yang sangat mirip dengan cara Item Login sekarang bekerja (ironi) ..) CleanMyMac menampilkan pemilih Item Login

Dan perhatikan bagaimana item ini, diaktifkan atau dinonaktifkan, bukan bagian dari pengguna yang terlihat "Item Masuk" di bawah Preferensi Sistem "Pengguna & Grup":

Jika Anda seperti saya dan Anda sedang mengerjakan ini pada level kode, panduan konsolidasi untuk implementasi ada di sini (oleh Tim Schroeder 2013): Peluncuran di Login Proyek Sandbox

William Cerniuk
sumber