(Linux)如何以阻塞模式启动已经运行的应用程序的实例?

(Linux)如何以阻塞模式启动已经运行的应用程序的实例?

为了解释,我使用了 Firefox,但它也会发生在其他应用程序中,下面是脚本:

$ cat ff.sh
#!/bin/sh
firefox http://superuser.com/
echo "$?"

假设 Firefox 已关闭,当我运行

$ ./ff.sh

脚本被阻止,直到我关闭 Firefox。只有关闭后我才能获得退出代码。

0

$ 

现在假设 Firefox 已在运行,当我运行脚本时,它会打开一个新的 Firefox 选项卡并运行到最后。 (并且 Firefox 继续运行。)

$ ./ff.sh
0

$ 

如何才能实现无论启动条件如何,行为都与第一个示例相同?基本上,我想实现相反的效果

$ cmd &

答案1

它看起来好像是异步运行的,但实际上并非如此。
Firefox 启动时会检查是否存在现有实例,如果找到,它会将控制权委托给现有实例并自行结束。因此造成混淆。

相关内容