如何在KDE 4.13中关闭Baloo?

我有Kubuntu 14.04,刚安装了最新的更新。查看进程列表时,我发现baloo索引器正在运行。
在Baloo设置中,我找不到一个复选框来关闭索引功能。

我刚刚升级到14.4版本,我的硬盘一直在运转。即使将/home文件夹添加到忽略列表中。显然,我们需要在KDE设置中恢复“禁用文件索引”复选框。文件索引器对SSD和其他试图在更快的闪存中进行缓存的驱动器性能有明显的负面影响。即使它的“nice”设置可以防止它使用过多的CPU,但如果您的计算机不断等待I/O操作,那么CPU并不是瓶颈所在。这是相关错误的链接:https://bugs.kde.org/show_bug.cgi?id=333433 - user273109
9个回答

你可以让文件管理器显示隐藏文件,然后转到$HOME/.kde/share/config/baloofilerc。只需编辑它并更改选项即可。
Indexing-Enabled=true 

转到(或如果没有此选项,则添加)

Indexing-Enabled=false

禁用Baloo。

我知道这太容易了,但它对我和发布这个简单解决方案在此页面上的人都有效。

禁用Akonadi服务器和Nepomuk搜索插件可以大大提高KDE环境的性能。


1还适用于Fedora 20(仍然使用KDE 4.13.3;在“系统设置 > 桌面搜索”中有一个选项“启用桌面搜索”,可以精确更新该选项)。 - David Tonhofer
禁用Akonadi可以大大提高KDE的性能。我尝试过了,效果很好。 - Ade Malsasa Akbar
1请注意,此选项必须在“[基本设置]”部分下,否则它将没有任何效果。 - Ruslan
2运行命令balooctl disable将为您完成此操作。 - Jamie Kitson

Baloo负责桌面搜索。 引用Baloo作者之一的话
引用: "不再有明确的“启用/禁用”按钮。我们希望推广搜索的使用,并且认为Baloo不应该妨碍用户。然而,我们对此进行了智能处理,如果您将家目录添加到“排除文件夹”列表中,Baloo将自动关闭,因为它不再有任何需要索引的内容。"

enter image description here


48不再有明确的“启用/禁用”按钮了。我们希望推广使用搜索功能,并认为Baloo不应该妨碍用户。哇,真是傲慢啊。如果它不再占用我CPU的100%并使我的电脑陷入停滞,我可能会考虑使用它。但这仍然应该是用户的决定。 - Mike
2@Mike:它一直在占用你所有的CPU吗?我们进行了相当广泛的测试,但有时候还是会遗漏一些问题。开发文件索引器可能会变得棘手,因为每个人的文件都不同。你能否帮忙报告一个错误?我们非常愿意尝试并解决你的问题。 - Vishesh Handa
27哦,我会提交一个bug报告。事实上,没有办法在不进行随机操作的情况下禁用这个该死的东西,这是一个巨大的问题。占用100%的CPU资源而不给用户关闭它的方式,只能说是糟糕的设计。 - CountMurphy
9完全同意CountMurphy的观点。我完全理解默认启用索引的决定——许多用户都希望有这样的功能——但是“没有关闭选项”?嗯……顺便说一句,它还会占用我的系统一个完整的CPU核心。 - us2012
刚刚升级完,我发现有一个核心运行在100%的状态,因为baloo正在进行索引。然而,需要注意的是,baloo的优先级被设置为19(最低优先级)。这意味着只要这个核心处于空闲状态,baloo就会一直使用该核心达到100%的利用率。 - Vangelis Tasoulas
4@VangelisTasoulas,对于在笔记本电脑上运行它的人来说,这并不重要。我最不想做的就是耗尽电池来启用一个我不想要的功能。 - CountMurphy
1还有一个名为baloo_file_cleaner的程序,尽管我已将Indexing-Enabled设置为false并将我的主文件夹添加到忽略列表中,但它仍然以每秒300K的速度不断写入磁盘。 - Tombart
5禁用按钮是一回事,但另一个问题是很明显应该在ionice下运行这样的东西,因为这才是真正的瓶颈。nice不会改变任何事情。 - dhill

来自 Gentoo 论坛:http://forums.gentoo.org/viewtopic-p-7522240.html

从 KDE 4.13.0 (Kubuntu Trusty) 开始,无法在 GUI 中禁用语义桌面。虽然在系统设置中有一个 "桌面搜索" 小程序,你应该能够在那里将你的主目录加入黑名单,但这样做没有效果,Baloo(取代了 Nepomuk/Strigi)仍以 100% 的负载和多GB 内存占用在运行它的 CPU 核心上。

你可以使用 'top' 检查系统的 CPU 负载:

top

使用'iotop'检查系统的I/O负载。
sudo apt-get install iotop
sudo iotop

要永久禁用baloo,将其符号链接到/bin/true。
sudo mv /usr/bin/baloo_file_extractor /usr/bin/baloo_file_extractor.orig
sudo ln -s /bin/true /usr/bin/baloo_file_extractor

并且

sudo mv /usr/bin/baloo_file_cleaner /usr/bin/baloo_file_cleaner.orig
sudo ln -s /bin/true /usr/bin/baloo_file_cleaner

这样做将阻止它再次运行。当然,这样做会失去搜索功能,但似乎除此之外没有任何不良影响。

3这将阻止它再次运行。我猜,直到下一次baloo更新? - warvariuc
嗯,是的 ;) 实际上我更喜欢bcmpinc的解决方案:将/usr/share/autostart/目录中的baloo_file.desktop文件重命名,至少在我的系统上似乎完全消除了它,并且不会产生太多干扰。虽然使用大锤子当然更令人满意! :D - fman
我不确定这些系统文件在升级过程中是否会被恢复。 - Sparhawk
有人尝试过使用"kwriteconfig --file baloofilerc --group 'Basic Settings' --key 'Indexing-Enabled'" false,然后执行"balooctl disable",并且真的起作用了吗?从逻辑上看,这应该停止所有的baloo活动,但事实并非如此。最终我采用了fman和bcmpinc的方法,对我来说效果很好...只是我决定非常讨厌它,所以我暂停了该软件包,这样当它需要升级时我会注意到,如果确实需要的话,下次进行发行版升级时我将不得不重新操作。 - osirisgothra
我还会加上chattr +i /usr/bin/baloo_file_cleaner以及对提取器做同样的处理。这样即使进行了更新,也不会改变它们。不确定它们会失败还是忽略这个操作。 - Ruslan

为了避免手动编辑$HOME/.kde/share/config/baloofilerc,这个方法可以帮你自动完成相同的操作。
kwriteconfig --file baloofilerc --group 'Basic Settings' --key 'Indexing-Enabled' false

最佳答案。因为当KDE运行缓慢无法使用时,你可以通过终端解决这个问题。 - PlasmaBinturong

我还没有尝试过,但是显然你也可以做。
$ cp /usr/share/autostart/baloo_file.desktop ~/.kde/share/autostart/
$ echo "Hidden=True" >> ~/.kde/share/autostart/baloo_file.desktop

(我将我的个人文件夹放在了“不搜索”的部分,可能是由于Nepomuk导致的,并且 baloo_file 仍然占用着一个核心的100%。)

1对于其他人阅读这个信息 - baloo_file不再使用100%的核心。这是一个已经在最终版本中修复的错误。 - Vishesh Handa
5不,不是这样的。我仍然有这个问题。而且它占用了我的内存(8GB)。你能否请提供一个链接给我,以便重新打开这个错误报告? - dadexix86
@VisheshHanda 可能需要被标记。 - Sparhawk
@dadexix86 请提交一个新的错误报告。这可能不是同一个问题。 - Vishesh Handa
@VisheshHanda 在第三或第四次重启之后,并在删除了之前的Nepomuk索引之后,问题自行解决了。 - dadexix86

balooctl

就像这里这里所说的那样,只需使用:

balooctl disable

顺便说一句,配置文件现在位于~/.config/baloofilerc而不是~/.kde/share/config/baloofilerc

我可以删除baloo ~/.local/share/baloo/index文件吗?(它在我的笔记本上超过1GB) - rubo77
1备份后看起来很安全 :) 你可以稍后重新索引。 - Pablo Bianchi

将$HOME添加到排除路径列表中确实停止了使用100% CPU的baloo_file_extractor。然而,接着又启动了baloo_file_cleaner,导致我的硬盘被破坏。
确保它不会自动启动似乎修复了这些问题:
sudo mv /usr/share/autostart/baloo_file.desktop /usr/share/autostart/baloo_file.desktop.orig

我怀疑系统文件在未来的升级中可能会再次创建(或还原)。按照我的回答,修改用户文件可能更好。 - Sparhawk
修改用户文件对我没有起作用。如果在未来的更新中重新启用baloo,那么要么这个bug被修复了,要么我会注意到并再次禁用它。两种情况都可以。 - bcmpinc
好的。就像我在回答中所说的,我没有测试过它。顺便说一句,对于我来说,100%的CPU bug似乎已经消失了。 - Sparhawk

虽然有几种方法可以防止Baloo进行索引,但我的意图是阻止Baloo甚至运行。根据KDE文档的说法,没有用户可访问的方法来做到这一点,所以我结合了在KDE论坛上找到的一个解决方案和用户的解决方案禁用可执行文件

sudo mv /usr/bin/baloo_file /usr/bin/baloo_file-orig
sudo ln -s /bin/true /usr/bin/baloo_file
sudo mv /usr/bin/baloo_file_cleaner /usr/bin/baloo_file_cleaner-orig
sudo ln -s /bin/true /usr/bin/baloo_file_cleaner
sudo mv /usr/bin/baloo_file_extractor /usr/bin/baloo_file_extractor-orig
sudo ln -s /bin/true /usr/bin/baloo_file_extractor

我接下来更进一步,确保无法更新baloo,覆盖上述的符号链接:
$ sudo apt-mark hold  baloo libbaloocore4 libbaloofiles4 libbaloopim4 libbaloowidgets4 libbalooxapian4
$ sudo apt-get remove baloo

为了额外的保险,如果baloo进程不小心找回来了,可以将以下内容添加到~/.kde/share/config/baloofilerc中。
[Basic Settings]
Indexing-Enabled=false

Aaron Seigo在KDE论坛上的一篇帖子中提到:
qdbus org.kde.baloo.file /indexer suspend

帖子位于这里: https://forum.kde.org/viewtopic.php?f=154&t=120047#p304335 使用以下内容进行恢复:
qdbus org.kde.baloo.file /indexer resume

使用以下方法来检查Baloo是否被暂停:
qdbus org.kde.baloo.file /indexer isSuspended

提示:当我在启用bash自动补全的Kubuntu 14.04中键入“qdbus org.kde.baloo.file /indexer”并多次按下“Tab”键时,我会得到baloo命令列表。

1这个链接表明这只是暂停了Baloo。可以推测,在重新启动后,Baloo将会再次运行吗? - Sparhawk
是的,这是真的。它会停止或暂停当前的会话,但不会完全关闭。 - Vangelis Tasoulas