Щелчок на ссылку в PDF порождает тысячи xdg-открытых процессов

У меня есть PDF со ссылкой на веб-страницу, которая раньше работала (это откроет ссылку в Firefox через xdg-открытый). Однако, когда я нажимаю его теперь, буквально тысячи xdg-открытых процессов запускаются, и плазменный рабочий стол достигает 100% CPU.

Я не знаю, как начать диагностировать это. Что могло вызвать эту проблему?

Пример проблемы PDF здесь.

Вот снимок экрана того, что происходит. Отметьте поврежденную панель задач из-за тысяч xdg-открытых экземпляров Here is a screenshot of what happens. Note the corrupted taskbar due to thousands of xdg-open instances

2
задан 22 September 2015 в 15:49

3 ответа

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

я думал бы, что выбиравший Firefox в "Параметрах настройки системы / Программы По умолчанию" будут достаточны, но по-видимому нет.

0
ответ дан 2 December 2019 в 02:21

Да, не делайте xdg-открытыми предпочтительное приложение. Поскольку задание xdg-открывает для обнаружения предпочтительного приложения. Бесконечная рекурсия следует.

, Другими словами, xdg-открытый "клиент" предпочтительной системы пантомимы/приложений. Нужно указать где-нибудь, что на самом деле предпочтительное приложение, и это не может возможно быть xdg-открыто само.

Вы устанавливали xdg-открытый как предпочтительное приложение для текста/HTML, или это было сделано Вашим дистрибутивом?

1
ответ дан 2 December 2019 в 02:21

Я просто встретился с той же проблемой, но затем для открытия a mailto: ссылка. Подход для отладки проблемы является, вероятно, аналогичным Вашему, как бы то ни было.

Во-первых, найдите то, что обрабатывает mailto (или в Вашем случае, http) схема:

$ xdg-mime query default x-scheme-handler/mailto
kmailservice5.desktop

Теперь, что kmailservice5.desktop?

$ locate kmailservice5.desktop
/usr/share/applications/kmailservice5.desktop

Открытие вышеупомянутых шоу файла:

[Desktop Entry]
Type=Application
Exec=kmailservice5 %u
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;

X-DocPath=kioslave5/mailto/index.html
NoDisplay=true

# KMailService is the handler for mailto URLs
Name=KMailService
...

Интересно что kmailservice5 ?

$ kmailservice5 --help
   xdg-open -- opens a file or URL in the user's preferred
   application

Synopsis

   xdg-open { file | URL }

   xdg-open { --help | --manual | --version }

Use 'man xdg-open' or 'xdg-open --manual' for additional info.

Это - точно тот же вывод как xdg-open --help! Это странно... Я искал источник kmailservice5 и найденный http://api.kde.org/frameworks-api/frameworks5-apidocs/kio/html/kmailservice_8cpp_source.html. Это - простое приложение, которое звонит QDesktopServices::openUrl https://doc.qt.io/qt-5/qdesktopservices.html#openUrl (В KDE4, почтовое приложение было явно вызвано через KToolInvocation::invokeMailer; Мое частичное обновление KDE5 является, вероятно, причиной этой поломки).

Другими словами, mailto:... открывает обработчик mailto: который открывает обработчик mailto: и т.д. Это никогда не заканчивается, и единственный способ закончить этот цикл состоял в том, чтобы выйти killall kde-open plasma-desktop.


Для решения проблемы, я создал a robs-mailto.desktop со следующим содержанием:

[Desktop Entry]
Type=Application
Exec=kdialog --msgbox "Rob's mailto handler: %u"
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;

Name=RobsMailtoHandler

и зарегистрированный это следующим образом:

$ xdg-mime default robs-mailto.desktop x-scheme-handler/mailto

и проверенный, что это было правильно зарегистрировано:

$ xdg-mime query default x-scheme-handler/mailto
robs-mailto.desktop

$ xdg-open mailto:test@example.com
# (opened a KDialog window that printed the email address, as I specified)
3
ответ дан 2 December 2019 в 02:21

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

Похожие вопросы: