linux 为什么xdg-open会阻塞命令行?

3z6pesqy  于 2023-11-17  发布在  Linux
关注(0)|答案(2)|浏览(169)

我的系统是Debian 12。我尝试使用xdg-open打开一个图像文件,但当图像文件打开时它会阻塞。在xdg-open返回之前,必须关闭图像查看器。
虽然很多人说xdg-open在他们的环境中立即返回。我想知道这是否是一个配置或分发问题。如果可能的话,是否有任何选项可以让xdg-open分离并立即返回。我搜索了xdg-open文档,但没有找到任何东西。

juzqafwq

juzqafwq1#

xdg-open只是一个 Package 器,用于使用可以处理它的应用程序打开文件。
因此,它并不保证它会立即阻塞还是返回:这取决于委托的应用程序(因此,如果xdg-open最终调用display-im6.q16,则是display-im6.q16阻塞(或不阻塞)。
当然,事情有点复杂。例如,如果我运行xdg-open file.jpg,那么我也会得到display-im6.q16,但没有阻塞。为什么?因为我 * 还 * 安装了exo-utils,所以xdg-open不会直接调用display-im6.q16,而是调用exo-open(无论出于何种原因)不会阻塞。
现在,我还没有找到任何文档可以保证exo-open不会 * 阻塞 *。如果你想让xdg-open立即返回,只需要在后台运行它:

xdg-open myfile &

字符串
如果你不想记住必须这样做,你也可以创建一个可执行文件/usr/local/bin/xdg-open,它(取决于你的PATH)应该优先于系统安装的/usr/bin/xdg-open

#!/bin/sh
/usr/bin/xdg-open "$@" &


或者安装一些轻量级(至少我认为它是轻量级的)中间件,如exo-utils

r1zk6ea1

r1zk6ea12#

尝试安装/重新安装软件包xdg-utils

sudo apt install --reinstall xdg-utils

字符串
如果这个不起作用,试试:

sudo apt-get install --reinstall xdg-utils


如果这不起作用,请尝试更新您的软件包:

sudo apt update
sudo apt upgrade

相关问题