xdg-open перегружает процессор, бесконечно разветвляясь

Всякий раз, когда xdg-open встречает файл, у него нет связанного с ним приложения по умолчанию, он разветвляется. Этот процесс повторяется до тех пор, пока не будет убит. При этом он, конечно, занимает весь мой процессор и память. Кажется, это редкая проблема, так как Google мало что знает об этом. Может быть важно отметить, что это происходит с несколькими типами файлов.

Я использую Manjaro Linux с Awesome WM и fish в качестве оболочки, если что-то из этого имеет значение.

2 ответа

Решение

Проверьте значение вашей переменной среды BROWSER. В большинстве оболочек это делается echo $BROWSER, Если установлено /usr/bin/xdg-openВ этом и заключается ваша проблема.

Когда xdg-open пытается открыть веб-адрес, он делает это не по умолчанию, установленному с помощью xdg-mime, а с помощью команды в переменной BROWSER. И поскольку эта команда сама по себе является xdg-open, она отправляется в бесконечность.

Очистка этой переменной решает проблему. Для bash это, вероятно, установлено /usr/bin/xdg-open в ~/.bashrcс линией как BROWSER=/usr/bin/xdg-open, Удалите эту строку, и проблема будет устранена.

Я предполагаю, что xdg-open также использует браузер как открывающее приложение по умолчанию, что приводит к тому же процессу загрузки процессора, когда обрабатывается неизвестный файл.

Также установка perl-file-mimeinfo и перезагрузка может помочь.

Спасибо MariusMatutiae за предоставленную ссылку, которая помогла мне ответить на мой собственный вопрос.

Это вызвано следующей ошибкой вxdg-mime(часть пакета):

https://gitlab.freedesktop.org/xdg/xdg-utils/issues/131

что, если у вас есть файлы *.desktop, содержащие пробелы, может привести к тому, что xdg-mime будет рекурсивно проходить по всему вашему домашнему каталогу или файловой системе, что приведет к потреблению большого количества процессора и зависанию. Исправление предназначено для xdg-utils, и сопровождающие должны его упаковать.

Пока вы ждете, вы можете просто добавить недостающую пару кавычек, отредактировав скрипт xdg-mime, как в запросе на включение :

Это происходит в функцииsearch_desktop_file(), добавьте эти кавычки в строку 930 вxdg-utils1.1.3, добавление кавычек вокруг$dirв следующем блоке:

          for f in "$dir"/*/; do 
      [ -d "$f" ] && search_desktop_file "$MIME" "$f" 
    done

Это является причиной многих ошибок в других приложениях, таких как Discord, который запускается с черным экраном и запускает процесс, потребляющий много ресурсов процессора, пока Discord ожидает его завершения:

      xdg-mime query default x-scheme-handler/spotify

Разработчики, пожалуйста, обновите xdg-utils!

Другие вопросы по тегам