macOS:Spotlight - 索引进程重启
macOS Spotlight 搜索结果陈旧或缺失时,重启 mds 进程即可快速恢复,索引损坏时再重建数据库。
2026-07-11
macOS 聚焦搜索(Spotlight)偶尔会”罢工”——搜不到刚拉取/安装的应用,或结果陈旧。一条 sudo killall mds 就能让它在几秒内恢复。下面拆开看”问题 / 解法 / 原理”。
① 我出现的问题
在 macOS 上用聚焦搜索(右上角放大镜或 ⌘Space)时:
- 搜不到我刚拉取或安装的应用程序和文件;
- 搜出来的结果是陈旧缓存——文件明明已经在磁盘上,聚焦却像”眼盲”了一样捞不到。
② 解决方法
一行命令,重启底层索引引擎:
sudo killall mds
进阶:如果 kill 之后仍不正常,说明索引数据库本身损坏,需要重建索引(慢、吃 CPU):
sudo mdutil -E /
一句话区分两者:
killall mds= 换了个清醒的图书管理员来查目录。速度快,专治进程卡死。mdutil -E= 把整座图书馆的目录卡片烧掉重写。速度慢,专治索引库损坏。
③ 解决的原因
mds 全称 Metadata Server(元数据服务器),是负责 Spotlight 搜索的核心守护进程。你每次搜索,都是向后台这个默默运行的 mds 进程发请求,由它去庞大的索引数据库里捞结果。
作为开发者,电脑里经常瞬时产生大量文件 I/O(克隆大型 GitHub 仓库、编译生成缓存、更新依赖库),mds 偶尔会”消化不良”:
- 陷入死锁:读某个权限异常或格式损坏的文件时卡住;
- 内存泄漏 / 过载:海量小文件把内存吃爆,进程假死(Hang);
- 缓存错乱:索引库已更新,但进程内存里的搜索树跑偏,导致它”眼盲”。
当你执行 sudo killall mds:
- 强制斩杀——系统无视它卡在什么状态,直接把它从内存清掉;
- 系统级复活——macOS 的服务管理器
launchd一直在监控核心进程,一旦发现mds意外死亡,会立刻自动拉起一个新的mds进程。
新启动的 mds 头脑清醒,重新连接到硬盘上的索引数据库,顺利读到你那个应用程序的真实元数据,搜索功能自然就恢复了。