什么是mediascanner服务以及如何避免安装它?

几个月以来,在我使用的桌面Ubuntu 14.04系统之一上,由于没有明显的原因,CPU经常上升到80-100%。 htop通常将责任归于文件系统进程,例如nemontfs 。 为了让CPU退回,我会杀死这些进程,这在某些情况下会导致无法访问文件系统并导致重新启动。

几天前,我注意到,每当发生这种情况时,另外一个进程也始终使用高CPU: mediascanner-service-2.0 。 一些研究引导我到论坛的这个主题 ,只是建议删除它。 所以我做了。

最终结果出乎意料地是积极的:不仅高CPU负载事件消失了,系统总体上要快得多。 镜头的加速是戏剧性的:找到一个类似Calc的应用程序现在最多需要2秒,而之前需要花费大约20秒。 现在查找文件需要大约5秒钟,而在此之前大约需要30秒。 像Eclipse这样的重型程序启动速度更快,工作空间也更流畅。 似乎整体磁盘访问频率也在降低。

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

更新 :根据Seth的建议 ,可以将此包跟踪到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系统的一部分。 留下来回答的是这个流氓包的确切function。

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

mediascanner正在扫描你的整个硬盘来发现媒体,所以第一次,它会减慢你的计算机。 最终,它应该缓存其结果,然后它将停止如此资源密集。

您有两种方法可以帮助解决问题:

  1. (首选解决方案)您可以明确告诉mediascanner不要尝试通过创建新的fie并将其命名为.nomedia来扫描目录。 然后,当mediascanner到达此目录时,它甚至都不会为它编制索引。 从理论上讲,您可以在计算机上为多个目录执行此操作,并且mediascanner应该停止索引它们。
  2. 您可以卸载它,在短期内(直到Unity 8成为默认值)将阻止此操作发生,但您可能会遇到依赖性问题。 注意:如果您正在进行Ubuntu SDK开发,则mediascanner是一个依赖项。

希望这有助于:)

资源