Linux相当于OS X的/ usr / bin / open

时间:2015-03-02 05:50:37

标签: linux macos shell

我尝试按照与/usr/bin/open这样的操作方式相同的方式启动流程:open -a /Applications/Firefox.app --args -profile "blah blah" -no-remote

正如我在这里从这个主题中学到的:launchd from terminal to start app

然而,Linux并没有像我想象的那样拥有open。我通过搜索验证了这一点。但在我的搜索中,我无法找到替代方案。如何启动流程,以便启动流程不会与已启动的流程共享其文件描述符,如本SO主题中所述:Close all File Handles when Calling posix_spawn

这是显示我的桌面文件的视频。我试图以某种方式启动它们,以便文件描述符不会在彼此之间混合,这是我的屏幕投射:https://www.youtube.com/watch?v=Yc19BzLTnDE

此视频显示PID正在混合:https://www.youtube.com/watch?v=YJsyV6tK7FA

3 个答案:

答案 0 :(得分:2)

使用xgd-open

  

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

https://askubuntu.com/questions/591736/any-c-functions-to-simulate-double-click-on-file/592439