ปิดการใช้งานรายการเริ่มต้นที่ทำงานด้วยตนเอง


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]



ทำไมคุณคิดว่ามันไม่ซ้ำกัน (ช่วยป้องกันการได้รับคำตอบเดิมอีกครั้ง) และฉันคิดว่าคุณประสบปัญหานี้กับแอปพลิเคชันเฉพาะคุณสามารถแสดงรายการเหล่านี้ในคำถามของคุณได้ไหม
nohillside

และฉันคิดว่าคุณเข้าใจผิดในสิ่งหนึ่งวัน สิ่งที่คุณระบุไว้ข้างต้นเป็นเพียงแอปเตือนความจำ (เมนูเล็ต) ซึ่งจะเริ่มต้นได้หากมีการทำเครื่องหมายที่การเข้าสู่ระบบ ไม่ใช่โฟลเดอร์ LaunchAgents / Daemons แบบ sandboxed
nohillside

ขอขอบคุณสำหรับการชี้แจง. ฉันอาจเข้าใจผิดเกี่ยวกับการวินิจฉัย แต่นั่นคือสิ่งที่ฉันเห็นกิจกรรมเมื่อดูการกระทำ "ปิดการใช้งาน" ด้วยfs_usageดังนั้นฉันคิดว่ามันเป็นสิ่งที่เกิดขึ้น
ด่าน

และไม่ใช่ dupe เนื่องจากคำถามอื่นได้รับการตอบด้วยรายการมาตรฐานของชื่อเข้าสู่ระบบที่ฉันแสดงไว้ที่จุดเริ่มต้นของคำถาม แอปพลิเคชันที่ฉันเห็นสิ่งนี้เกิดขึ้นกับ (รวมถึงวันแรก) ไม่ปรากฏในรายการเข้าสู่ระบบหรือไดเรกทอรีเหล่านั้นของฉัน ...
Dan

คำตอบ:


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

การเปลี่ยนสิ่งนี้เป็นจริงในไฟล์เดียวกันนั้นถูกปิดการใช้งาน:

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

1
นิสัยดี - ดูเหมือนว่าเป็นคำตอบ ฉันยังคงงงงวยว่าทำไมสิ่งนี้จึงไม่ปรากฏที่ใดก็ได้: ไม่อยู่ในบานหน้าต่างการตั้งค่ารายการเข้าสู่ระบบ (ได้รับจะต้องมีส่วนใหม่สำหรับผู้ใช้ทั้งหมด) ... ไม่อยู่ในโฟลเดอร์เรียกใช้ ... ไม่แม้แต่ใน Lingon จากความอยากรู้คุณรู้ได้อย่างไรว่าจะมองจากที่ไหน?
ด่าน

ฉันวิ่งfseventerเมื่อฉันเปิดวันที่หนึ่งเป็นครั้งแรก
Lri

ขอบคุณที่แบ่งปันผลการสอบสวนของคุณ! บางครั้งฉันยังใช้ fseventer สำหรับแอปพลิเคชันตรวจสอบ FS
porg

2

(นี่ไม่เกี่ยวกับรายการล็อกอินที่ผู้ใช้มองเห็นได้ภายใต้การตั้งค่าระบบ & กลุ่มผู้ใช้)

เนื้อหา / ไลบรารี / LoginItems / ฝังอยู่ในชุดแอปพลิเคชันคือสิ่งที่ดูเหมือนว่าจะนำแนวทางของ Apple ไปใช้กับแอปแบบแซนด์บ็อกซ์

เคล็ดลับจาก @ user495470 เกี่ยวกับการจัดเก็บการอ้างอิงรายการเข้าสู่ระบบใน /var/db/launchd.db/ ดูเหมือนว่าจะหมดอายุใน macOS 10.12

ทิศทางของ Apple ดูเหมือนจะมุ่งไปสู่แนวทางที่มีอยู่ในแอพโดยที่ LaunchDaemons, LaunchAgents และ StartupItems อาจไม่ได้รับการ จำกัด ในอนาคตเนื่องจากแอป Mac อาจต้องใช้ Sandbox ในบางจุด (การคาดเดาส่วนตัวไม่ใช่ข้อเท็จจริง) ในอีกทางหนึ่ง CFPreferences API และการส่ง AppleEvents เพื่อเปิดใช้นั้นเลิกใช้แล้ว ...

Ref:

ในอดีตที่ผ่านมามันง่ายในการค้นหาในโฟลเดอร์ดังกล่าวสำหรับข้อมูลการเปิดตัวเริ่มต้น (ต่อ Dan) รุ่น sandboxed ใหม่นี้ในขณะที่ในทางทฤษฎีปลอดภัยกว่าในทางปฏิบัติซ่อนความสามารถในการเริ่มต้นของ app (หรือโทรจัน?) จากผู้ใช้ทั่วไปทั้งหมด ใครจะรู้ในไดเรกทอรีระบบ การค้นหาไอเท็มล็อกอินที่ซ่อนอยู่ในตอนนี้กลายเป็น PITA (เจ็บปวดในแอป) ด้วยการ grep'ing ทางของคุณผ่านโฟลเดอร์ Applications หรือเปิดแอพบันเดิลด้วยตนเองเพื่อค้นหาใน / Contents / Library / สำหรับโฟลเดอร์ "LoginItems" และเนื้อหา สำหรับวิธีแก้ปัญหาระดับผู้ใช้ฉันพบเครื่องมือที่แสดงรายการล็อกอินที่ฝังอยู่ในแอปที่เรียกว่าCleanMyMac (สามารถปิดใช้งานหรือเปิดใช้งานได้โปรดใช้เพียงรับแอพนี้จาก บริษัท เท่านั้นมีรุ่นที่มีรอยร้าวซึ่งมีไวรัสจริงในลักษณะที่คล้ายคลึงกับวิธีการที่ Login Items ทำงานได้ (ประชด) .. ) CleanMyMac แสดงตัวเลือกรายการเข้าสู่ระบบ

และสังเกตว่ารายการเหล่านี้เปิดใช้งานหรือปิดใช้งานไม่ได้เป็นส่วนหนึ่งของผู้ใช้ที่มองเห็น "รายการเข้าสู่ระบบ" ภายใต้การตั้งค่าระบบ "ผู้ใช้ & กลุ่ม":

หากคุณเป็นเหมือนฉันและคุณกำลังทำงานในระดับรหัสคู่มือการรวมการดำเนินการอยู่ที่นี่ (โดย Tim Schroeder 2013): การเปิดตัวที่โครงการเข้าสู่ระบบ Sandbox

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.