Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux相当于OS X';s/usr/bin/open_Linux_Macos_Shell - Fatal编程技术网

Linux相当于OS X';s/usr/bin/open

Linux相当于OS X';s/usr/bin/open,linux,macos,shell,Linux,Macos,Shell,我正试图以与在OS X中使用/usr/bin/open相同的方式启动一个进程,如下所示:open-a/Applications/Firefox.app--args-profile“blah blah”-无远程 正如我在这里从这个主题中学到的: 但是Linux没有像我想象的那样打开这个open。我通过搜索验证了这一点。但在我的搜索中,我找不到其他选择。如何启动流程,使启动流程不与启动流程共享其文件描述符,如本so主题中所述: 这是一个显示我的桌面文件的视频。我正试图以某种方式启动它们,以便文件描述

我正试图以与在OS X中使用
/usr/bin/open
相同的方式启动一个进程,如下所示:
open-a/Applications/Firefox.app--args-profile“blah blah”-无远程

正如我在这里从这个主题中学到的:

但是Linux没有像我想象的那样打开这个
open
。我通过搜索验证了这一点。但在我的搜索中,我找不到其他选择。如何启动流程,使启动流程不与启动流程共享其文件描述符,如本so主题中所述:

这是一个显示我的桌面文件的视频。我正试图以某种方式启动它们,以便文件描述符不会相互混淆。下面是我的屏幕投影:

此视频显示PID正在混合:

使用

xdg open是一个独立于桌面的工具,用于配置用户的默认应用程序


您只需运行二进制文件即可在Linux中启动X11应用程序,因此此使用不需要使用
open
命令。(另一种使用
open
的方法是启动带有相关应用程序的文档,您可以使用特定于桌面管理器的命令或
xdg open


为了避免共享文件描述符,您可以简单地从shell中关闭它们,例如在bash
/usr/bin/x11/firefox 3>&-4>&-…
(最多9个),或者如果它只是标准描述符,那么您可以重定向它们:
/dev/null 2>/dev/null
。或者,您可能只是想使用
nohup
来避免在终端关闭时关闭
SIGHUP
上的程序。

解决方案找到了使用自定义图标启动.desktop文件的方法。我无法让
xdg open
在I上工作,不知道为什么


这里有两个完全独立的问题。你想解决哪一个问题?@Ignacio Vazquez Abrams:两者都有!;)非常感谢@user2588666!:)请原谅@IgnacioVazquez Abrams我以为这是一种情况。理想情况下,我正在寻找最好的跨linux解决方案来启动另一个进程,以确保文件描述符不会被复制,您编写了一个扩展来从FIREFOX内部运行FIREFOX…除了它没有关闭打开的描述符。您好,Shx2,您能告诉我如何使用它启动带有一些命令行参数的FIREFOX吗:
/usr/lib/FIREFOX/FIREFOX-无远程-P dev
,非常感谢您的快速回答!嗨,shx2,我在底部发布了一个使用Gio的c解决方案,我无法写出xdg open,请分享:)我正在尝试并行运行firefox。这可以通过附加
-no remote-P“profile name here”
的命令行参数来实现,如果我关闭文件描述符,那么将关闭第一个实例no?