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-utils
1.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!