/usr/libexec/lsd 占用 100% CPU 的解决办法

最近忽然发现磁盘存在大量写入,打开任务管理器一看,发现一个叫做“lsd”的进程持续占用 20% – 40% CPU,很奇怪。

经过一番查询,得知这个进程是 macOS 和 iOS 上的系统进程,全名叫做“Launch Service Daemon”,负责所有 App 文件类型关联和启动。但它的数据库有时候会损坏,这就导致它频繁读取和验证某些数据。

一旦它的数据库损坏,你就会遇到 lsd 占用 100% CPU,或者大量内存,甚至是巨大的磁盘写入……

总之,我们可以让它重新注册所有必要的文件,重建数据库即可: find /System/Library/Frameworks -type f -name "lsregister" -exec {} -kill -seed -r \;

或者,使用这个命令: /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user 这个和上一句理论上执行相同任务,只是前者搜索 lsregister 而后者直接给出了路径。

参考文献:

https://discussions.apple.com/thread/8365107?answerId=33313731022#33313731022

https://discussions.apple.com/thread/250050422?answerId=250085966022#250085966022

 

本文由 落格博客 原创撰写:落格博客 » /usr/libexec/lsd 占用 100% CPU 的解决办法

转载请保留出处和原文链接:https://www.logcg.com/archives/3382.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

Comments

  1. Yes! The first command, run as root worked. lsd is no longer using 100% cpu and my Mac is not horribly slow.
    sudo find /System/Library/Frameworks -type f -name “lsregister” -exec {} -kill -seed -r \;

  2. 那这个数据库的重建过程大概要多久?我是因为有些文件的预览不正常用的这个命令,现在预览正常了,但是一直在后台占用cpu,已经一天了,写入量46G,

    1. 这两个命令是不一样的,我试了一下上面的命令,现在不占用cpu了。看来后面多加的参数反而会出问题,也可能是macOS版本的问题吧,我看网上最早给出下面那个命令的时候好像是09年,,,

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注