Supernormal Asked: 2015-09-23 04:01:55 +0800 CST2015-09-23 04:01:55 +0800 CST 2015-09-23 04:01:55 +0800 CST 单击 PDF 中的链接会产生数千个 xdg-open 进程 772 我有一个带有网页链接的 PDF,它曾经有效(它将通过 xdg-open 在 firefox 中打开链接)。但是,当我现在单击它时,实际上启动了数千个 xdg-open 进程并且 plasma-desktop 以 100% cpu 运行。 我不知道如何开始对此进行故障排除。什么可能导致这个问题? 问题 PDF 的示例在此处。 这是发生的情况的屏幕截图。请注意由于数千个 xdg-open 实例而损坏的任务栏 kde4 3 个回答 Voted Rob W 2015-11-25T15:25:21+08:002015-11-25T15:25:21+08:00 我刚遇到同样的问题,但随后打开了一个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!这很奇怪...我查找了kmailservice5http://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. 为了解决这个问题,我创建了一个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:[email protected] # (opened a KDialog window that printed the email address, as I specified) David Faure 2016-04-23T07:07:24+08:002016-04-23T07:07:24+08:00 是的,不要让 xdg-open 成为首选应用程序。因为 xdg-open 的工作是找出首选应用程序。无限递归随之而来。 换句话说,xdg-open 是 mime/apps 偏好系统的“客户端”。必须在某处指定实际是首选的应用程序,而这不可能是 xdg-open 本身。 您是否将 xdg-open 设置为 text/html 的首选应用程序,或者是由您的发行版完成的? Best Answer Supernormal 2015-09-23T11:26:09+08:002015-09-23T11:26:09+08:00 罪魁祸首似乎是 Dolphin 中的错误设置,其中 html 文件的默认“打开为”操作是 xdg-open,我猜这导致了无限循环。将默认程序更改为 Firefox 后,它按预期工作。 我原以为在“系统设置/默认程序”中选择 Firefox 就足够了,但显然不是。
我刚遇到同样的问题,但随后打开了一个
mailto:
链接。但是,调试问题的方法可能与您的类似。首先,找到处理 mailto(或在您的情况下为 http)方案的内容:
现在,什么是
kmailservice5.desktop
?打开以上文件显示:
我想知道是什么
kmailservice5
?这与输出完全相同
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
.为了解决这个问题,我创建了一个
robs-mailto.desktop
包含以下内容的:并注册如下:
并验证它是否已正确注册:
是的,不要让 xdg-open 成为首选应用程序。因为 xdg-open 的工作是找出首选应用程序。无限递归随之而来。
换句话说,xdg-open 是 mime/apps 偏好系统的“客户端”。必须在某处指定实际是首选的应用程序,而这不可能是 xdg-open 本身。
您是否将 xdg-open 设置为 text/html 的首选应用程序,或者是由您的发行版完成的?
罪魁祸首似乎是 Dolphin 中的错误设置,其中 html 文件的默认“打开为”操作是 xdg-open,我猜这导致了无限循环。将默认程序更改为 Firefox 后,它按预期工作。
我原以为在“系统设置/默认程序”中选择 Firefox 就足够了,但显然不是。