






















对于喜欢折腾 macOS 的效率玩家或开发者来说,系统底层的 launchd 绝对是一个让人又爱又恨的存在。
作为 macOS 的标准后台守护进程管理器,无论是开机自启的脚本、定时执行的自动化任务,还是常驻后台的服务,都离不开它。但遗憾的是,苹果官方只提供了一个极其硬核的命令行工具 launchctl 。
前段时间,我折腾着把一台 M4 Mac Mini 改造为本地的 Home Lab ,上面跑了各种各样的常驻服务、反向代理以及内网穿透工具。为了让这些服务在后台稳定运行且开机自启,我不得不反复穿梭在终端里,手写或修改冗长且容易出错的 .plist (XML) 配置文件,并不断重复敲击 launchctl load 和 unload 命令。
对于一个追求自动化和效率的人来说,这种体验实在太不优雅了。
寻找完美工具的破灭 在决定自己动手之前,我也在市面上寻找过替代方案。
老牌工具 LaunchControl 功能确实非常强大,但它的界面过于硬核和复杂,学习曲线陡峭,且售价并不便宜;另一款 Lingon Pro 虽然界面现代了一些,但作为一款轻量级需求工具,它依然是一款付费的闭源商业软件。
我只是需要一个轻量、直观、且能让我随时掌控 Mac 后台服务的控制台。既然找不到完全称心如意的,那就自己写一个吧。于是,LaunchManager 诞生了。
LaunchManager:给 launchd 穿上现代化的外衣 LaunchManager 是一款专为 macOS 设计的开源后台服务管理工具。它的核心理念很简单:把反人类的命令行和 XML 配置文件,变成一目了然的可视化开关。
它主要解决了以下几个痛点:
告别终端,可视化管理: 所有的 User Agents 、Global Daemons 等后台进程都被分门别类地列出。你可以通过直观的 UI 界面,一键启用、禁用或重启某个服务,再也不用去记忆复杂的 launchctl 命令。
状态一目了然: 某个后台服务到底在没在跑?有没有报错? LaunchManager 提供了清晰的状态指示灯,服务的运行状态和 PID 尽收眼底。
极致轻量,清爽无广告: 没有复杂的商业化设计,只有纯粹的工具属性。采用现代化的界面设计,完美融入 macOS 的原生视觉体验。
AI 辅助开发,全开源回馈社区 作为一个习惯用自动化工具提升效率的开发者,LaunchManager 也是我结合 Claude 进行 AI 结对编程的产物。这不仅极大地缩短了从构想到落地的时间,也让我有更多精力去打磨 UI 细节和交互体验。
更重要的是,我深知开源社区对于开发者的意义。因此,LaunchManager 采用了 MIT 协议完全开源。你不需要支付任何费用,任何人都可以审查它的代码,或者基于它进行二次开发。
项目主页与下载: https://launchmanager.seanhub.top/
如果你也曾被 macOS 的启动项和后台服务折磨过,或者正在为你的 Mac 寻找一个优雅的后台管理面板,不妨试试 LaunchManager 。
希望这个小工具能帮你省下宝贵的时间。如果它对你有帮助,欢迎在 GitHub 上为我点亮一颗 Star ,这是对独立开发者最大的鼓励!
2 slowman 12 天前谁能用 AI vibe 一个 LaunchControl 一模一样的 |
3 goldenlove 12 天前虽然 AI 时代已经让 AI 来管理了。 |
4 LoNeZ 12 天前... 现在不都 agent 吗? 最好支持 agent 的一些接口出来, 让 agent 直接开始干 😅 |
5 q534 12 天前好东西!已 star |
6 q534 12 天前bug ,readme 里面的 brew 不能安装 |
8 fds 11 天前👍 我之前也想做,就是这套有些复杂,理解不清楚。现在是用 zellij 在后台跑 5 个脚本,看输出很方便。只是每次重启电脑后,需要手动执行一条命令复活这组 session 。 |
13 Seanma 10 天前@EchoWhale 感谢指出,发现 ai 把一些即将弃用的 load unload launchd 命令也放进来了,后面应该只会有 bootstrap/bootout/enable/disable |
14 EchoWhale 10 天前 via iPhone@Seanma 哈哈其实 Launchctl -h 推荐的是用 load/unload 。 另外抓一个虫,查看日志就会占满 cpu 然后 app 卡死 |
16 A2umiA 9 天前我好像从来没有管过 launchd, 有什么场景需要自己手动配这个啊, 我看 nix-darwin 也能管理 launchd |
17 netdcy 9 天前除了 Agents 、Daemons ,还支持 LoginItems 吗?就是“通用-登录项与扩展-登录时打开”的那些。用 KnockKnock 能扫描出来,而且我发现有的程序登记的不是主程序,“通用-登录项与扩展-登录时打开”里就没有,不知道和“允许在后台”是什么关系 |
19 Seanma 9 天前@netdcy 感谢反馈,这个问题很有代表性,简单说下 LaunchManager 目前的做法和「登录项」那套机制的关系。 LaunchManager 管什么 本应用主要管理 launchd 的 plist ,也就是侧边栏里的: • 用户 / 系统 LaunchAgents 对应目录大致是 ~/Library/LaunchAgents 、/Library/LaunchAgents 、/Library/LaunchDaemons ,可以查看、载入/移除、启停、编辑 plist 和「系统设置 → 通用 → 登录项与扩展」的关系 你在系统设置里看到的两块,和 launchd 有重叠,但不完全是一回事: ┌────────────┬────────────────────────────────────────────────────────────────────────────────────┐ macOS 从 Ventura 起把这类持久化项收进 Background Task Management ( BTM )。所以会出现你看到的情况: • KnockKnock / sfltool dumpbtm 能扫到很多项; LaunchManager 对 Login Items 的定位(当前版本) 我们没有做成和 KnockKnock 一样在应用内列出、开关所有 Login Items——Apple 对第三方没有公开的 per-item 开关 目前在侧边栏增加了 Login Items 入口,用来: 1. 说明 Launchd (本应用可管) 和 Login Items (需在系统设置里管) 的区别; 若某个软件已经在 LaunchAgents / LaunchDaemons 里有 plist ,一般在本应用对应分类里管理即可;若只在「允许在后台」里、或 如果后续社区更希望「应用内只读列出 BTM 项 + 跳转设置」,欢迎继续跟帖,我们会根据反馈评估。再次感谢。 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。