Vô hiệu hóa các mục khởi động tự chạy


9

Tôi đã tìm thấy một vài ứng dụng dường như có thể tự khởi chạy khi khởi động, mặc dù chúng không xuất hiện ở những nơi thông thường ...

- 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

Ít nhất một số trong số các ứng dụng này (ví dụ Ngày thứ nhất và Tạm dừng - cả hai từ Mac App Store) dường như đang khởi chạy một mục từ các LoginItemsthư mục nội bộ của riêng chúng :

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

Là những công dân tốt, cả hai ứng dụng đều cho phép bạn vô hiệu hóa hành vi khởi chạy khi đăng nhập, nhưng điều đó làm tôi bối rối rằng hành vi này dường như không thể kiểm soát được từ sở thích toàn hệ thống và tôi muốn một cách để xác định / kiểm soát một cách có hệ thống các mục đăng nhập. Vì vậy, câu hỏi (hai phần) là:

  • Điều gì thực sự kiểm soát xem / các mục khởi chạy dành riêng cho ứng dụng này có được kích hoạt hay không và
  • Làm thế nào tôi có thể có được một kho lưu trữ của tất cả các mục đăng nhập này?

[chỉnh sửa cho rõ ràng 2013-03-20 11:22 PT]



Tại sao bạn nghĩ rằng nó không phải là một bản sao (giúp ngăn chặn nhận được cùng một câu trả lời một lần nữa)? Và tôi cho rằng bạn đang trải nghiệm điều này với các ứng dụng cụ thể, bạn có thể liệt kê chúng trong câu hỏi của bạn không?
nohillside

Và tôi nghĩ rằng bạn đang nhầm ngày. Thứ bạn liệt kê ở trên chỉ là ứng dụng Nhắc nhở (menulet) sẽ bắt đầu nếu khởi chạy khi đăng nhập được chọn. Đây không phải là thư mục LaunchAgents / Daemons có hộp cát.
nohillside

Cảm ơn bạn đã làm rõ. Tôi có thể bị nhầm lẫn về chẩn đoán, nhưng đó là nơi tôi thấy hoạt động khi xem hành động "vô hiệu hóa" fs_usage, vì vậy tôi cho rằng đó là những gì đang diễn ra.
Dan

Và, không phải là một bản dupe vì câu hỏi khác đã được trả lời với danh sách loginitems tiêu chuẩn mà tôi đã liệt kê ở đầu câu hỏi. Các ứng dụng tôi thấy điều này xảy ra với (bao gồm Ngày thứ nhất) không xuất hiện trong Mục đăng nhập của tôi hoặc các thư mục đó ...
Dan

Câu trả lời:


8

Ngày thứ nhất dường như lưu trữ mục đăng nhập trong /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

Thay đổi điều này thành đúng trong cùng một tệp đã vô hiệu hóa nó:

<key>com.dayoneapp.dayone-agent</key>
<dict>
    <key>Disabled</key>
    <false/>
</dict>

1
Đẹp - có vẻ như đó là câu trả lời. Tôi vẫn còn bối rối tại sao điều này không nổi lên ở bất cứ đâu rõ ràng: nó không có trong ngăn tùy chọn Đăng nhập (được cấp, sẽ cần phải có một phần mới cho tất cả người dùng) ... không có trong bất kỳ thư mục khởi chạy nào ... thậm chí không có trong Lingon. Vì tò mò, làm thế nào bạn biết nơi để tìm?
Dan

Tôi đã chạy fseventer khi tôi mở Day One lần đầu tiên.
Lri

Cảm ơn đã chia sẻ kết quả điều tra của bạn! Đôi khi tôi cũng sử dụng fseventer cho các ứng dụng giám sát FS.
porg

2

(Đây không phải là về mục Người dùng đăng nhập hiển thị trong Tùy chọn hệ thống của người dùng & nhóm)

Nội dung / Thư viện / Đăng nhập Các mặt hàng / được chôn trong gói ứng dụng là những gì dường như là cách triển khai của Apple đối với các ứng dụng được đóng hộp cát.

Mẹo từ @ user495470 về việc lưu trữ tham chiếu mục đăng nhập trong /var/db/launchd.db/ dường như không còn tồn tại trong macOS 10.12

Hướng của Apple dường như đang hướng đến cách tiếp cận độc lập với ứng dụng trong đó LaunchDaemons, LaunchAgents và StartupItems có thể bị giới hạn trong tương lai vì các ứng dụng Mac có thể được yêu cầu đóng hộp cát tại một số điểm (phỏng đoán cá nhân, không thực tế). Mặt khác, API CFPreferences và gửi AppleEvents để khởi chạy đều không được chấp nhận ...

Tham chiếu:

Mặc dù trước đây rất dễ tìm kiếm các thư mục đã nói ở trên để biết thông tin khởi động khởi động (theo Dan), nhưng mô hình hộp cát mới này, về mặt lý thuyết an toàn hơn về mặt hoạt động, ẩn khả năng khởi động của ứng dụng (hoặc Trojan?) Từ tất cả người dùng thông thường và hầu hết các siêu người dùng Ai biết tìm trong thư mục hệ thống. Tìm kiếm các Mục đăng nhập bị ẩn này giờ đã trở thành một PITA (đau trong ứng dụng) với cách truy cập thông qua thư mục Ứng dụng hoặc mở các gói ứng dụng tìm trong / Nội dung / Thư viện / cho thư mục "LoginItems" và nội dung của nó. Đối với giải pháp cấp độ người dùng, tôi đã tìm thấy một công cụ liệt kê gói ứng dụng được nhúng Các mục đăng nhập được gọi là CleanMyMac (có thể tắt hoặc kích hoạt chúng. Hãy cẩn thận, chỉ nhận ứng dụng này từ công ty. Có những phiên bản bẻ khóa có sẵn thực sự mang virus theo cách rất giống với cách thức Đăng nhập hiện hoạt động (trớ trêu) ..) CleanMyMac hiển thị công cụ chọn Đăng nhập mục

Và lưu ý cách các mục này, được bật hoặc tắt, không phải là một phần của người dùng hiển thị "Mục đăng nhập" trong Tùy chọn hệ thống "Người dùng & Nhóm":

Nếu bạn giống như tôi và bạn đang làm việc này ở cấp mã, một hướng dẫn tổng hợp để thực hiện có ở đây (bởi Tim Schroeder 2013): Khởi chạy tại Đăng nhập Sandbox Project

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.