@
netdcy 感谢反馈,这个问题很有代表性,简单说下 LaunchManager 目前的做法和「登录项」那套机制的关系。
LaunchManager 管什么
本应用主要管理 launchd 的 plist ,也就是侧边栏里的:
• 用户 / 系统 LaunchAgents
• 系统 LaunchDaemons
对应目录大致是 ~/Library/LaunchAgents 、/Library/LaunchAgents 、/Library/LaunchDaemons ,可以查看、载入/移除、启停、编辑 plist
等。
和「系统设置 → 通用 → 登录项与扩展」的关系
你在系统设置里看到的两块,和 launchd 有重叠,但不完全是一回事:
┌────────────┬────────────────────────────────────────────────────────────────────────────────────┐
│ 系统设置里 │ 大致含义 │
├────────────┼────────────────────────────────────────────────────────────────────────────────────┤
│ 登录时打开 │ 用户勾选的「开机/登录时启动」应用,偏用户可见的登录项 │
│ 允许在后台 │ 允许在后台运行的项目(含 Helper 、daemon 等),很多并不会出现在「登录时打开」列表里 │
└────────────┴────────────────────────────────────────────────────────────────────────────────────┘
macOS 从 Ventura 起把这类持久化项收进 Background Task Management ( BTM )。所以会出现你看到的情况:
• KnockKnock / sfltool dumpbtm 能扫到很多项;
• 有的登记的是 Helper / 子进程,不是主程序图标,在「登录时打开」里看不到;
• 同一条目可能同时对应一个 launchd plist ( LaunchAgents/Daemons 里能看到)和 BTM 里的一条记录。
LaunchManager 对 Login Items 的定位(当前版本)
我们没有做成和 KnockKnock 一样在应用内列出、开关所有 Login Items——Apple 对第三方没有公开的 per-item 开关
API ,和「允许在后台」也不能在应用里直接改。
目前在侧边栏增加了 Login Items 入口,用来:
1. 说明 Launchd (本应用可管) 和 Login Items (需在系统设置里管) 的区别;
2. 一键跳转到 系统设置 → 通用 → 登录项与扩展,方便你对照处理。
若某个软件已经在 LaunchAgents / LaunchDaemons 里有 plist ,一般在本应用对应分类里管理即可;若只在「允许在后台」里、或
KnockKnock 能扫到但系统设置「登录时打开」里没有,通常要在系统设置里允许/关闭,或卸载对应软件——LaunchManager
会引导你去系统设置,而不是在应用内复刻一份 BTM 列表。
如果后续社区更希望「应用内只读列出 BTM 项 + 跳转设置」,欢迎继续跟帖,我们会根据反馈评估。再次感谢。