xdg-open 通过无休止地分叉来占用 CPU

use*_*484 7 linux cpu-usage xdg manjaro

每当 xdg-open 遇到一个文件时,它就没有一个与之关联的默认应用程序。这个过程递归地重复直到被杀死。这样做时,它当然会占用我所有的 CPU 和内存。这似乎是一个罕见的问题,因为谷歌对此知之甚少。需要注意的是,这会发生在多种文件类型上。

我正在使用 Awesome WM 和 Fish 作为我的外壳运行 Manjaro Linux,如果其中任何一个有所作为的话。

use*_*484 4

检查浏览器环境变量的值。在大多数 shell 中,这是由 完成的echo $BROWSER。如果它设置为/usr/bin/xdg-open,那就是你的问题。

当 xdg-open 尝试打开网址时,它不会使用 xdg-mime 的默认设置,而是使用 BROWSER 变量中的命令。由于该命令本身就是 xdg-open,因此它会分叉到无穷大。

清空该变量即可解决问题。对于 bash,它可能设置为/usr/bin/xdg-openin ~/.bashrc,带有类似 的行BROWSER=/usr/bin/xdg-open。删除该行,问题就解决了。

我假设 xdg-open 也使用浏览器作为默认打开应用程序,从而在处理未知文件时导致相同的 CPU 消耗过程。

此外,安装perl-file-mimeinfo并重新启动可能会有所帮助。

感谢 MariusMatutiae 提供的链接帮助我回答了自己的问题。