当前位置: 首页>>技术教程>>正文


unity – 什么是 mediascanner-service 以及如何避免安装它?

, ,

问题描述

几个月以来,在我使用的其中一个桌面 Ubuntu 14.04 系统上,CPU 经常无缘无故地上升到 80-100%。 htop 通常会将责任归于文件系统进程,例如 nemontfs 。为了让 CPU 恢复正常,我会终止这些进程,这在某些情况下会导致无法访问文件系统并随后重新启动。

几天前,我注意到每当这种情况发生时,另一个进程总是存在,也使用高 CPU: mediascanner-service-2.0 。一些研究让我找到了 this thread at the Forum,它只是建议将其移除。所以我做了。

最终结果出人意料地是积极的:不仅高 CPU 负载的情况消失了,系统也变得更快了。 Lens 的加速非常显著:找到像 Calc 这样的应用程序现在最多只需要 2 秒,而以前需要大约 20 秒。查找文件现在需要大约 5 秒,而以前需要 30 秒。像 Eclipse 这样的繁重程序启动速度更快,工作空间也更加流畅。磁盘访问频率似乎也整体降低了。

这个 mediascanner2.0 包到底是什么?它是 Unity 7 的一部分还是后验安装的依赖项?是否可以阻止其安装?

更新:在 Seth’s suggestion 之后,可以将此包跟踪到 indicator-session

$ sudo aptitude why mediascanner2.0
i   indicator-session         Recommends indicator-applet (>= 0.2) | indicator-renderer
i A unity8                    Provides   indicator-renderer                            
i A unity8                    Recommends unity-scope-mediascanner2                     
pi  unity-scope-mediascanner2 Depends    mediascanner2.0                               

显然,mediascanner2.0(和 Unity 8 shell)是基础 14.04 系统的一部分。剩下要回答的是这个流氓包的确切功能。

最佳答案

mediascanner2.0 是 Unity 8 中用于发现媒体然后播放的包。例如,Unity 8 上的 Core Music App 使用 mediascanner 扫描音乐目录(或任何与此相关的目录),然后播放音乐。由于 Ubuntu 正在向 Unity 8 发展,它默认包含在 Ubuntu iso 中。

mediascanner 正在扫描您的整个硬盘驱动器以发现媒体,因此第一次,它会降低您的计算机速度。最终,它应该缓存它的结果,然后它就不再是资源密集型的了。

您有两个选项可以帮助您解决问题:

  1. (首选解决方案)您可以通过创建新文件并将其命名为 .nomedia 来明确告诉 mediascanner 不要尝试扫描目录。然后,当 mediascanner 到达这个目录时,它甚至不会费心去索引它。理论上,您可以对计算机上的多个目录执行此操作,并且 mediascanner 应该停止索引它们。

  2. 您可以卸载它,这在短期内(直到 Unity 8 成为默认设置)将阻止这种情况发生,但您可能会遇到依赖问题。注意:如果你在做 Ubuntu SDK 开发,mediascanner 是一个依赖项。

希望这有帮助:)

Source

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12267.html,未经允许,请勿转载。